Tenho um script que migramos a PHP 5 e está me dando um erro que não consigo identificar. O código do erro não parece de sintaxe, senão de algo de tratamento de sessões que não entendo, por me sai um warning um pouco estranho, que nunca vi antes em PHP.
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
A coisa é que tentei ver no manual de php e não há nada sobre isto.
Este problema que aparece deve ser devido a um tratamento errôneo das variáveis de sessão. Observe se pode ser por um problema como este:
- Primeiro você inicias a sessão com session_start()
- A seguir você declara uma variável de sessão qualquer e lhe dá ovalor null
- Por último escreve uma variável glogal com o mesmo nome da variável de sessão e lhe dá qualquer valor.
session_start();
$_SESSION['variable'] = null;
$variable = "o que seja dá erro de PHP porque esta variável tem o mesmo nome que a de sessão";
Isto você o soluciona mudando o nome da variável de sessão ou a variável global. Ou seja, não tendo uma variável global que se chame igual que a variável de sessão. Ou então, não criando a variável de sessão com o valor null.
Não obstante, pude reproduzir este erro em uma versão de PHP 5.2.5, porém, tenho outro PHP com uma versão 5.2.6 que já não ocorre o mesmo, ou seja, não me dá esse erro.
Por Miguel Angel Alvarez