pasar - Advertencia sobre los efectos secundarios de la sesión de PHP con variables globales como fuente de datos
variables de session php ejemplo (5)
Cuando realiza cambios en .htaccess ini_set no funciona. Tendrás que hacerlo como:
php_flag session.bug_compat_42 0
php_flag session.bug_compat_warn 0
Estoy tratando de alojar un sitio web PHP que me fue dado. Veo esta advertencia:
Advertencia: Desconocido: el script posiblemente se base en un efecto secundario de sesión que existió hasta PHP 4.2.3. Tenga en cuenta que la extensión de sesión no considera las variables globales como una fuente de datos, a menos que register_globals esté habilitado. Puede desactivar esta funcionalidad y esta advertencia configurando session.bug_compat_42 o session.bug_compat_warn en off, respectivamente. en Desconocido en la línea 0
¿Qué significa esto? ¿Cómo puedo rastrear el origen de este problema dentro del código?
Esta es una buena información para descubrir qué está causando la advertencia, pero recomendaría NO cerrar las advertencias que Owen menciona. Estas funciones de tiempo de ejecución se eliminan en PHP 5.4.0 y el desarrollador debe adoptar la práctica de evitar dicho uso de variables.
Para solucionar esto, puede ser una molestia para los desarrolladores, pero si tiene
$_SESSION["user"]
$user;
renombrar la sesión a
$_SESSION["sessuser"];
O viceversa siempre que el nombre de la sesión y el nombre de la variable sean diferentes. Piénselo de esta manera: cuando actualice a la última compilación, tendrá que depurar su código de todos modos.
Parece que hay algunas posibilidades problemáticas aquí:
http://www.spiration.co.uk/post/1231/Your-script-possibly-relies-on-a-session-side-effect
dice que casos como este:
$_SESSION[''firstname'']=$_REQUEST[''firstname''];
activará la advertencia.
Además, interpreto este contenido de error de php: http://bugs.php.net/bug.php?id=41540 para indicar que este error también puede ocurrir cuando se asigna una variable a la sesión superglobal que aún no se ha inicializado, por ejemplo
//Start of script
$_SESSION[''bob''] = $bob;
básicamente tienes una variable con el mismo nombre que tu sesión. ex:
$_SESSION[''var1''] = null;
$var1 = ''something'';
que reproducirá este error. puede evitar que PHP intente encontrar variables existentes y advertirle sobre ellas al agregar estas líneas a su secuencia de comandos:
ini_set(''session.bug_compat_warn'', 0);
ini_set(''session.bug_compat_42'', 0);
estos valores se pueden establecer en php.ini o .htaccess también
en mi caso, php.ini cambia de encendido a apagado
Me gusta esto :
session.bug_compat_42 = off
session.bug_compat_warn = off
si no funciona, reinicie apache