Aplicações no mesmo apache se confundem

(Esquiller) #1

Olá pessoal, estou com um problema esquisito.

Tenho mais de uma aplicação rodando no mesmo servidor apache. por ex.

\wwwroot\aplic1
\wwwroot\aplic2

Qdo entro no Browser me logo na aplic1, entro no menu e faço uma busca(filtro) e entro na (Consulta)começo a navegar, até aí tudo bem.
Se caso eu abrir outro browser e me logar na aplic2 navegar pelo menu, qdo volto para a aplic1 e clico no botão Retornar da aplicação Consulta, ele retorna para a navegação da aplic2, ou seja, as aplicações se misturam. muitos esquisito.

Alquem já viu isso, tem uma solução. isso tá me perturbando.

Obrigado,
Esquiller

(Diogo Toscano) #2

O que voce chama de abrir outro browser? Firefox, chrome ou IE?

Existe um problema nos browser que mesmo sendo um browser novo, eles compartilham a mesma sessão no PHP.
Ou seja, se voce criou um sistema que utiliza a variavel [var_login] (apenas um exemplo) e abrir outro browser e rodar outro sistema … eles vao se misturar … isso é do browser/PHP.

Se quizer reforcar o teste, abre 1 sistema no firefox e abra o segundo no IE e voce vai ver que esta tudo funcionando.

(Esquiller) #3

Pois é Diogo, fiz esse teste:

Abri aplic1 no Chrome e a aplic2 no IE, não tive problemas, funcionou normalmente.

Tem como resolver isso pelo PHP/Browser.?

Obrigado,
Esquiller

(Diogo Toscano) #4

Voce pode tentar utilizar uma funcionalidade nova la em administração que é propagar o session id e compilar novamente as aplicações … ele vai tentar trafegar o session id … agora nos logins vc vai ter q tentar forcar um session id diferente … randomico …

(Haroldo) #5

verifique no php.ini se register_globals esta off.

(Eduardo Alves) #6

so pra complementar mais um pouco… Estive estudando e me deparei com alguns “furos” do register_globals = ON

Só para ver uma das fraquezas de se usar register globals on…
se você fizer www.tralalal.com?a=x
o php deixará você acessar o parâmetro da URL como $_GET[‘a’], mas também como $a…mas o que acontece se você já tem uma variável $a no meio do código dessa página, inclusive se você tem uma variável $_SESSION[‘a’]? conflito!

Além de ser muito melhor prática colocar cada coisa em seu lugar e deixar que seja acessada a variável de acordo com sua origem mesmo…ou seja, se é variável da url acesse com $_GET[‘a’], se eh post com $_POST[‘a’], e assim vai…

Programando de acordo com a melhor prática (usar sempre $_GET, $_POST, etc) para referenciar suas variáveis você nunca precisará se preocupar com a diretiva register_globals, pois funcionará dos dois jeitos.

Sobre segurança relacionada a register globals: http://www.php.net/manual/pt_BR/security.globals.php