Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Giovanird

Encerrar apenas 1 session entre outras logadas

Recommended Posts

Olá a todos!
Postei no PHP pois não achei a categoria ASP
 

Tenho 2 session: cliente e visitas
Preciso encerra  a session visitas  mas a session cliente não pode ser encerrada.

Já tentei:

 

visitas = Session.SessionID
Session.Abandon("visitas") e gera o erro:  O objeto não é uma coleção: Abandon
Session.Contents.Remove("visitas") e não é encerrado nada
Session.Collection.Remove("visitas") e gera o erro: O objeto não dá suporte para a propriedade ou método: Collection
session("visitas")="" e não é encerrado nada

Não sei o que pode ser, não posso usar somente session.Abandon pois vai encerrar todos os logados. Não uso mais nada na pagina de logout.asp além do script mencionado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
session_start();
unset($_SESSION['visitas']);

 

Se quiser aqui uma ótima classe para gerenciamento de sessões

Spoiler

<?php
/**
 * ****************************************************
 * @author ?
 * @copyright ?
 * @version 2.0: 2010, Spell Master (c)
 * @version 2.1: 2011, Spell Master (c)
 * @version 2.2: 2013, Spell Master (c)
 * @version 3.0: 2017, Spell Master (c)
 * 
 * ****************************************************
 * @class: Classe para o gerenciamento e manipulação
 * de sessões
 * ****************************************************
 * 
 * @Usage single session
 * ----------------------------------------------------
 * *** Pega a instância da classe
 * $session = Session::getSession();
 * 
 * *** Ver a cessão armazenada
 * $session->Word = "Olá mundo";
 * 
 * * Inicia uma cessão
 * $session->startSession();
 * 
 * *** Verificação de a sessão existe
 * if (isset($session->helloWord)) {
 *     echo "A cessão \"Word\" foi iniciada : "{$session->Word}".;
 * } else {
 *     echo "A cessão \"Word\" não foi iniciada";
 * }
 * 
 * *** Destroi a cessão
 * unset($session->Word);
 * 
 * ----------------------------------------------------
 * @Usage all sessions
 * ----------------------------------------------------
 * $session->destroy();
 * $session->restart();
 * $session->reset();
 * 
 * ****************************************************
 * @changelog
 * * Adicionado ducumentação e instruções de uso [spell master]
 * * Removido métodos e atributos desnecessários [spell master]
 * * Removido necessidade de parâmetros [spell master]
 * * Fixado na instância o construtor [spell master]
 * * Aplicado corretamente o uso de métodos estáticos [spell master]
 * ****************************************************
 */

class Session {

    /* Constants de definição */
    const SESSION_STARTED = true;
    const SESSION_STOPED = false;

    /* Atributo de verificação */
    private $sessionStatus = self::SESSION_STOPED;

    /* Atributo estático de método */
    private static $session;

    /**
     * ************************************************
     * @Method: Obtem a intância da cessão
     * (bool) Se a cessão já exite retorna a mesma
     * ************************************************
     */
    public static function getSession() {
        if (!isset(self::$session)) {
            self::$session = new self;
        }
        self::$session->startSession();
        return self::$session;
    }

    /**
     * ************************************************
     * @Method: Inicia a cessão
     * ************************************************
     */
    public function startSession() {
        $this->sessionStatus = session_start();
        return $this->sessionStatus;
    }

    /**
     * ************************************************
     * @Method: Elimina sessões
     * ************************************************
     */
    public function destroy() {
        if ($this->sessionStatus == self::SESSION_STARTED) {
            $this->sessionStatus = session_destroy();
            unset($_SESSION);
            return $this->sessionStatus;
        }
        return false;
    }

    /**
     * ************************************************
     * @Method: Reinicia as sessões
     * ************************************************
     */
    public function restart() {
        if (self::$session->destroy()) {
            self::$session->startSession();
        }
    }

    /**
     * ************************************************
     * @Method: Reseta as sessões
     * ************************************************
     */
    public function reset() {
        session_reset();
    }

    /**
     * ************************************************
     * @Method's HELPER: Helpes de auxílio a sessão
     * única
     * ************************************************
     */

    // ------------------------------------------------
    // Definir sessão
    public function __set($name, $value) {
        $_SESSION[$name] = $value;
    }

    // ------------------------------------------------
    // Obter sessão
    public function __get($name) {
        if (isset($_SESSION[$name])) {
            return $_SESSION[$name];
        }
    }

    // ------------------------------------------------
    // Verificar sessão
    public function __isset($name) {
        return isset($_SESSION[$name]);
    }

    // ------------------------------------------------
    // Desfazer sessão
    public function __unset($name) {
        unset($_SESSION[$name]);
    }

}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido: PHP -> .NET

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei e fechou todas as sessões

Quintelab, estou trabalhando em ASP Simples,  por favor, se tiver a categoria ou algo voltado poderia mover para lá?

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Public2004 disse:

@Giovanird Em asp clássico, segue a maneira de remover uma sessão específica:


Session.Contents.Remove("name_your_session")

Att.

Obrigado pela ajuda.
Testei neste modo porem a session não é encerrada, ao navegar em outras paginas a sessão continua a mesma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Giovanird Provavelmente algum erro no restante do seu code, pois o que sugeri está correto. Para testar, crie uma página simples com o code abaixo. No primeiro acesso a sessão é criada, ao atualizar a página a sessão é removida e assim se repetindo o ciclo a cada refresh.

If Session("visitas") = "" Then
	Session("visitas") = "Visitas"
	Response.Write("Session Create: "& Session("visitas"))
Else
	Session.Contents.Remove("visitas")
	Response.Write("Session Remove: "& Session("visitas"))
End If

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 22/04/2018 at 22:15, Giovanird disse:

Olá a todos!
Postei no PHP pois não achei a categoria ASP
 

Tenho 2 session: cliente e visitas
Preciso encerra  a session visitas  mas a session cliente não pode ser encerrada.

Já tentei:

 

visitas = Session.SessionID
Session.Abandon("visitas") e gera o erro:  O objeto não é uma coleção: Abandon
Session.Contents.Remove("visitas") e não é encerrado nada
Session.Collection.Remove("visitas") e gera o erro: O objeto não dá suporte para a propriedade ou método: Collection
session("visitas")="" e não é encerrado nada

Não sei o que pode ser, não posso usar somente session.Abandon pois vai encerrar todos os logados. Não uso mais nada na pagina de logout.asp além do script mencionado.

session("visitas")=""  ' essa ação é correta mas as páginas tem que estar condicionadas para essa sessão estar diferente de nulas senão o usuário será direcionado para a tela de login...

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala pessoal, tudo bem?
       
      Eu tenho um dominio e vários subdomios dentro.
      Quero saber como recuperar um cookie nos subdominios, uma vez que ele foi criado em um subdominio específico.
       
      Estrutura:
      Tô criando o cookie em usuario.dominio.com.br com o seguinte código:
       
      $valor = md5(uniqid(rand(), true));
      setcookie("token", $valor, time() + (60 * 10), "/", "www.dominio.com.br");
       
      Porém, quero recuperar esse valor em todos os outros subdominios, mas esse codigo aí não tá funcionando.
       
      Alguém pode ajudar?
      Valeu
       
    • Por cesarhtc
      Boa tarde tenho uma aplicação que gera uma relação de dados como faço para exportar isso para pdf?
       
      Obrigado
    • Por vmenezes
      ola galera . tenho uma aplicação com asp  e utilizo javascript para bater foto do cliente . consigo apos a foto batida salvar no pc com o ID do cliente,
      porem gostaria que assim que a foto fosse batida salvasse na raiz do proprio site.
      tem como fazer isso ?
      obg
    • Por Negrito
      Olá,
       
      Estou quebrando a cabeça com o recurso Session_OnStart , pois eu gostaria que algumas paginas/arquivos .asp tivessem exceções.
       
      Criei o Global.ASA com o seguinte contexto:
       
      <SCRIPT RUNAT=Server Language="VBScript">
      Sub Session_OnStart
        startPage = "/default.asp"
        currentPage = Request.ServerVariables("SCRIPT_NAME")
        If strcomp(currentPage,startPage,1) then
          Response.Redirect("/default.asp")
        End If
      End Sub
      </SCRIPT>
       
      Ele funciona perfeitamente, quando tento acessar qualquer pagina ou subdiretorio diretamente pela URL, ele me joga para a pagina inicial.
       
      Porem, eu gostaria de ter exceções em alguns diretorios e paginas .ASP , onde eu gostaria de liberar o acesso direto ao digitar a URL.
       
      Alguem sabe me informar se é possivel ? 
       
      Obrigado.
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.