Pelo que pude perceber,
o ideal seria que o session.valida gravasse o ID do usuário e não o nome para
futuras consultas no BD
<cfset session.valida=# nonono.id#>
Outra coisa é criar um
frame oculto e no BODY desse colocar
e nesse logout.cfm
apagar todos os cookies e sessions, fazendo que mesmo quando o usuário
fechar a janela o logout seja forçado.
sucesso.
Drausio.
----- Original Message -----
From: Gustavo
Ferrante
Sent: Wednesday, June 16, 2004 12:45 PM
Subject: RES: [cf-brasil] Ajuda Session Olá pessoal,
Verifiquei
os e-mail que chegaram como resposta a minha pergunta de definição de session. Me parece que o cflock irá resolver, mas vejamos o que
acontece: Página 1 = usuário
informa ID e Senha; Página 2 = o resultado
de uma query será inserida na variável session.valida (o resultado dessa
query poderá ser 1 ou nenhum registro, se encontrar o
registro, define a variável session.valida com o valor
de um campo da tabela que contém o nome da pessoa, se não houver resultado da
query, dá um cflocation para
a tela de login) Páginas 3, 4, 5, 6, N = Utilizam a variável session.valida para mostrar somente
informações pertinentes ao usuário logado (essas
informações vem de diversas querys que usam como
parâmetro de busca a variável session.valida).
Código: Apenas o trecho de
código da query e definição da
variável <cfquery
name="nonono" datasource="nononono"
password="nonononono"> SELECT
* FROM tabela WHERE tabela.id like '#login#' AND tabela.senha like '#pass#'
</cfquery> <cfset session.valida=# nonono.nome#> Aí vem minhas perguntas: Utilizando
o cflock na variável, fará com que eu não acesse
informações de outros usuários? Porque,
nas reclamações que eu tive, as pessoas somente acessam informações de outras
pessoas da mesma rede sendo que eu não amarrei nada ao IP?
Será que
se eu logar e a variável estiver com o valor
correspondente ao meu ID e eu continuar a utilizar o sistema e em seguida outra
pessoa logar, o sistema não vai começar a mostrar as
informações do outro usuário que logou depois?
O sistema
estava funcionando corretamente há até um mês atrás, de um dia para o outro, o
sistema ficou louco, começou a dar esse problema com o Login e trocar as datas como eu havia comentado no outro
tópico. O que poderia ter acontecido? Eu hospedo minha página na Porta
80. Grato mais uma
vez, Gustavo -----Mensagem
original----- Bom
acredito que o ideal é esclarecer algumas
coisas que são relevantes nesse tipo de problema : 1 - Existem informações
exclusivas que devem ser particularizadas (
dados específicos de cada usuário etc..
) 2 - Existem informações
que todas ou um determinado grupo de pessoas podem ter
acesso Situação 1
Dicas:
Além de um esquema de login
consistente você deve certificar de :
- Limpar os Cookies ( CFID, CFTOKEN ) quando o navegador for fechado
- Usar funções de Remoção ou Limpeza
de keys de Estrutura ( StructClear, StructDelete )
exemplos:
---
logout <cfscript
>
for( key in session ) structDelete( session , key );
//logout </cfscript> <cfif isDefined("Cookie.CFID") AND isDefined("Cookie.CFTOKEN")>
Situação 2 Em caso de conteúdo compartilhado, que possa ser utilizado por mais do
que um usuário você deve estar ligado aos filtros que serão realizados nas
consultas de banco de dados Geralmente essas rotinas são mais
difíceis de serem encontradas, caso o desenvolvimento dos códigos tenha sido
implementado de forma inadequada, ou seja a ausência de
um where ou and numa tabela que necessitaria de filtros para o usuário corrente
poderia ocorrer isso: -- Exemplo de um código
errado muito comum de ser
encontrado em códigos inadequados <cfquery name="qrLogin" datasource="teste"
maxrows="1">
select usuario, nome_usuario
from usuarios </cfquery> -- cflock
etc..
<cfif qrLogin.recordcount>
<cfset Session = qrLogin
/>
</cfif> Ou
seja o usuário não realiza nehum filtro
que determina o solicitante da ação, então o código irá sugerir a primeira linha
que a consulta retornar... ( e no caso da ausência do
maxRows ) ele vai sugerir todos Pode ser que esse não seja o seu
caso, mas essa 2ª situação vem mostrar que como o ColdFusion não considera o código proposto como exceção, ele
aparenta estar em "perfeito" funcionamento, quando na verdade está totalmente
equivocado em termos da lógica da aplicação. Jefferson de Araújo
Petilo De: Gustavo
Ferrante [mailto:[EMAIL PROTECTED] Olá
pessoal,
Estou tendo problemas com a definição da sessão. Criei uma tela de login, onde após a
verificação do ID e senha no banco de dados, o sistema atribui a uma variável
chamada session.valida um campo do banco de dados. Esse
campo servirá futuramente para mostrar informações pertinentes ao usuário
logado. Estava funcionando corretamente, o sistema somente mostrava ao usuário
suas informações, mas recebi algumas reclamações de usuários, informando que
quando ele loga no sistema, aparece informações de outras pessoas, mesmo elas
estando em micros diferentes. Percebi então que o sistema só trocava informações
entre usuários que utilizavam a mesma rede. Por
exemplo: Local 1 (em
rede) Sistema utilizado
por: José e
Mario Local 2 (em
rede) Sistema utilizado
por: Maria e
João Quando o José loga, aparece as informações do Mario ou
vice-versa. Quando a Maria loga, aparece as informações do João ou
vice-versa. Nunca aconteceu do José logar e aparecer as informações da Maria
que está em outra rede. Por favor, me
ajudem. Grato mais uma vez pela atenção de
vocês, Gustavo
--^^--------------------------------------------------------------- This email was sent to: [EMAIL PROTECTED] EASY UNSUBSCRIBE click here: http://topica.com/u/?b1dnXn.b7M5gI.YXJxdWl2 Or send an email to: [EMAIL PROTECTED] For Topica's complete suite of email marketing solutions visit: http://www.topica.com/?p=TEXFOOTER --^^--------------------------------------------------------------- |
- [cf-brasil] Ajuda Session Gustavo Ferrante
- Re: [cf-brasil] Ajuda Session Ronan Lucio
- RES: [cf-brasil] Ajuda Session André Luís
- RES: [cf-brasil] Ajuda Session Jefferson Petilo
- RES: [cf-brasil] Ajuda Session Gustavo Ferrante
- RES: [cf-brasil] Ajuda Session drausio
- RES: [cf-brasil] Ajuda Session Alex Hubner
- RES: [cf-brasil] Ajuda Session Marcelo de Dios Romar