Ir para conteúdo

Arquivado

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

Aristides Neto

Conflito de sessão PHP

Recommended Posts

Boa tarde pessoal...

 

Estou fazendo um sistema em PHP onde estou usando sessões, mas tenho outros sistemas que também usam sessões.

 

E quando eu abro os dois sistemas no mesmo navegador um "pega" a sessão do outro.

 

Exemplo:

 

Sistema 1 - localhost/sistema1

$nome = $_SESSION['nome']

$id = ...

 

Sistema 2 - localhost/sistema2

$nome = $_SESSION['nome']

$id = ...

 

Quando eu faço login em um sistema e abro o outro no navegador ele entende que nesse sistema ele esta logado também porque faço a validação com o nome, senha, etc.

 

Não sei se fui claro, mas como faço para isso não acontecer??

Compartilhar este post


Link para o post
Compartilhar em outros sites

As sessões estão ligadas ao mesmo domínio, se tudo estiver no mesmo domínio (por exemplo você testando no localhost) isso é para ocorrer mesmo. Uma solução prática é usar session_name para nomear as sessões de diferentes sistemas, evitando este problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você também pode contornar isso utilizando array multidimensional (caso seus sistemas façam parte da mesma aplicação). Exemplo:

$_SESSION[ 'clientes' ][ 'nome' ] = 'Gilberto';
$_SESSION[ 'fornecedores' ][ 'nome' ] = 'Astrogildo';

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

As sessões estão ligadas ao mesmo domínio, se tudo estiver no mesmo domínio (por exemplo você testando no localhost) isso é para ocorrer mesmo. Uma solução prática é usar session_name para nomear as sessões de diferentes sistemas, evitando este problema.

 

E como exatamente usaria session_name?

 

Fiz assim:

 

Se login == true

session_name('sistema');

session_start();

...

 

Em outra página:

 

session_name('sistema');

session_start();

 

Seria assim mesmo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, funciona desta maneira... só que para cada sistema dê um nome diferente, senão vai dar exatamente na mesma de não usar session_name...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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