Ir para conteúdo
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á?

Editado por Gabriel Heming
remover o quote

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por studdiox
      Opa galera tudo certinho sou iniciante e a um tempo atrás fiz um sisteminha com session deixei parado e essa semana resolvi usar ele o que para minha surpresa não esta funcionando mais devido a atualização da versão do php na minha hospedagem .... bom se alguém puder me dar uma força ja tentei de tudo mas não consegui meu conhecimento é baixo ainda ....
       
      Erro esta no final do código  teria que substituir if(!session_is_registered("nome")) { 
       
       
      segue o código de verificação completo
      <? session_name("name"); session_start(); if($acao == "logar") { $conn = mysql_connect("mysql.servidor.com.br","user","senha"); //configure os dados do seu MySQL $banco = mysql_select_db("banco"); //coloque o nome do seu banco de dados $nome = $_POST['nome']; $q_user = mysql_query("SELECT * FROM login WHERE login='$nome'"); if(mysql_num_rows($q_user) == 1) { $query = mysql_query("SELECT * FROM login WHERE login='$nome'"); $dados = mysql_fetch_array($query); if($_POST['pwd'] == $dados['senha']) { session_register("nome"); header("Location: admin.php"); exit; } // Senha inválida else { echo("<script>"); echo("alert('Senha Inválida !!');"); echo("document.location='index.php';"); echo("</script>"); } } // Login inválido else { echo("<script>"); echo("alert('Login Inválido !!');"); echo("document.location='index.php';"); echo("</script>"); } } //agora a parte que verifica se o login já foi feito if(!session_is_registered("nome")) { // Usuário não logado! Redireciona para a página de login echo("<script>"); echo("alert('Acesso Negado !!');"); echo("document.location='log-admin.php';"); echo("</script>"); } ?>
    • Por laumello12
      Galera ajudinha
      Como faço para consumir um web service pronto em um projeto. Preciso só que ele busque no web service e traga na web 
      HELP
    • Por alecarnero
      Eu fiz uma pagina de login SiteMaster.asp trabalha com uma pagina verify.asp , coloque ela como documento padrao , problema que sim
      o usuario ja tem gravada alguma pagina de antes ele consegue accesar sem pasar pela login page
       
      http://localhost/teste/barra.asp
       
      quem souber o nome das paginas consegue acceso direito  
       
      que tenho que agregar para somente accese qualquer pagina quem passo pelo login?
       
       
      Obrigado por qualquer orientaçao  
       
      Alejandro
       
       
       
       
       
       
       
       
       
       
    • Por Philippe Luis
      Galera, bom dia.
      Bom, tenho uma aplicação aonde salvo o carrinho de compras em uma session.
      Em desenvolvimento local wampserver tudo ocorre tranquilo.
      Subi meus arquivos pra nuvem e criei um subdominio para api (api.meudominio.com.br). HTTPS
      So que oque acontece, quando tento gravar o carrinho na sessão simplesmente não acontece.
      (Sim. Estou usando session_start() antes de declarar a session);
      Alimento minha api via ajax via POST (não sei se tem alguma coisa haver, so informação). Os dados chegam e tudo certo mais só não grava não grava na session. e não me apresenta nenhum erro.
      Verifico pra ver se existe a $_SESSION['cart'] mais não encontro.
      O mais estranho é que se eu declarar uma session no script. Ex: $_SESSION['teste'] = 'valor';   a session é gravada perfeitamente. Apenas não grava dados dinâmicos.
      Estou hospedando no HostGator.
       
      Aplicação toda finalizada e acontece esse erro com prazo de entrega curtíssimo.
      Ajuda ai galera. 
       
    • Por mmalainho
      Tenho um site em ASP nas línguas Português, Espanhol e Romeno.
      O serviço de hospedagem alterou o MYSQL ODBC para a versão 5.3 ANSI e agora não consigo fazer o update de texto em romeno (por exemplo Lecția 8 - Îmbunătățirea confortului mișcării corpului - Amortizarea )na base dados através de um formulário HTML.
       
      Tenho uma conexão para listar tudo sem problemas em todas as línguas mas fazer o insert/update não funciona em nenhuma das línguas com palavras acentuadas.
       
      conn.ConnectionString="DRIVER={MySQL ODBC 5.3 ANSI Driver}; SERVER="&srv&"; DATABASE="&bd&"; UID="&uid&";PASSWORD="&pws&";PORT="&port&"; OPTION=3; charset=utf8; "

      Já experimentei retirar  charset=utf8; e assim consigo inserir/atualizar em português e espanhol, mas Romeno não.
      conniu.ConnectionString="DRIVER={MySQL ODBC 5.3 ANSI Driver}; SERVER="&srv&"; DATABASE="&bd&"; UID="&uid&";PASSWORD="&pws&";PORT="&port&"; OPTION=3;"
         
       
      Versão do MySQL Versão do servidor: 5.1.73-community
      Charset: utf8_general_ci
      Tabela está também com utf8_general_ci
       
      Alguma sugestão ficaria muito grato
       
×

Informação importante

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