Ir para conteúdo

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 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.
       
       
    • Por Negrito
      Olá Pessoal, 
       
      Converti o banco de dados de uma app em ASP Classico de MSSQL para MySQL para redução de custos e percebi que alguns componentes ou recursos não estão mais funcionando devido a não compatibilidade com o MySQL , como por exemplo a função : RecordCount
       
      Já consegui converter e atualizar 95% de aplicação para rodar com o MySQL, mas tem 1 item que esta tirando meu sono e após dias pesquisando, resolvi pedir ajuda.
       
      Segue o meu codigo abaixo , onde estou com problema no resultado dessa operação:
       
      <%
      ...
      Set RS = Server.CreateObject("ADODB.Recordset")
      RS.CursorLocation = 3
      RS.CursorType = 3
      RS.ActiveConnection = Cn
      RS.Open strSQL, Cn, 3, 3
      RS.PageSize = 25
      RS.CacheSize = RS.PageSize
      intPageCount = RS.PageCount
      intRecordCount = RS.RecordCount
          If NOT (RS.BOF AND RS.EOF) Then
      If CInt(intPage) > CInt(intPageCount) Then intPage = intPageCount
          If CInt(intPage) <= 0 Then intPage = 1
              If intRecordCount > 0 Then
                  RS.AbsolutePage = intPage
                  intStart = RS.AbsolutePosition
                  If CInt(intPage) = CInt(intPageCount) Then
                      intFinish = intRecordCount
                  Else
                      intFinish = intStart + (RS.PageSize - 1)
                  End if
              End If
          If intRecordCount > 0 Then
              For intRecord = 1 to RS.PageSize
          QntExibicoes = QntExibicoes + Rs.fields("views")
      ...
      %>
       
       
      Já percebi que a função RecordCount não pode ser usada com o MySQL ou pelo menos não é compativel.
       
      A paginação esta funcionando ! 
      Porem , não consigo fazer ele calcular a quantidade de linhas (rows) do MySQL com a função RecordCount e acredito que possa ter alguma outra função que não esta compativel , mas como não conheço MySQL , não posso afirmar.
       
      Enfim, algum pode me dar uma luz ?
       
      Desde já agradeço pela atenção.
       
      Obrigado.
×

Informação importante

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