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 --^^---------------------------------------------------------------
Esta mensagem foi verificada pelo E-mail Protegido Terra. Scan engine: VirusScan / Atualizado em 14/06/2004 / Versão: 1.5.2 Proteja o seu e-mail Terra: http://www.emailprotegido.terra.com.br/ |
- [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
- Re: [cf-brasil] Ajuda Session Gustavo Ferrante
- Re: [cf-brasil] Ajuda Session drausio
- RES: [cf-brasil] Ajuda Session Alex Hubner
- RES: [cf-brasil] Ajuda Session Marcelo de Dios Romar