note 48942 added to function.session-start

From: Date: Wed, 12 Jan 2005 14:55:09 +0000
Subject: note 48942 added to function.session-start
Groups: php.notes 
Request: Send a blank email to php-notes+get-83153@lists.php.net to get a copy of this message
Running. Ejecutandose: Apache 1.3.27 PHP 4.3.3 Windows XP PROBLEM, PROBLEMA: VARIABLE SESSION LOST ON HEADER REDIRECT VARIABLES DE SESION PERDIDAS AL REDIRECCIONAR EXPLAIN. EXPLICACION: Documentation.(Part) Extracto de Documentacion. (in spanish, en español) del sitio php.net (http://es2.php.net/manual/es/ref.session.php) ******* BEGIN *************** Si track_vars está activado y register_globals está desactivado,sólo los miembros del vector asociativo global $HTTP_SESSION_VARS pueden ser registrados como variables de la sesión. Las variables restauradas de la sesión sólo estarán disponibles en el vector $HTTP_SESSION_VARS. Ejemplo 1. Registrar una variable con track_vars activado <?php session_start(); if (isset($HTTP_SESSION_VARS['count'])) { $HTTP_SESSION_VARS['count']++; } else { $HTTP_SESSION_VARS['count'] = 0; } ?> Se recomienda usar $_SESSION (o $HTTP_SESSION_VARS con PHP 4.0.6 o inferior) por seguridad y para hacer el código más legible. Con $_SESSION o $HTTP_SESSION_VARS, no es necesario usar las funciones session_register() / session_unregister() / session_is_registered(). ****** END ************** SOLUCION - SOLUTION: MI EJEMPLO. MY EXAPLE: two files. Dos archivos: amigo1.php amigo2.php amigo1.php <?php session_start(); // si en el php.ini trac_vars = on y register_globals = off // if php.ini contains trac_vars = on and register_globals = off // solo los miembros de $http_session_vars pueden ser registrados como variables de sesion // only $http_session_vars members can be registred as session variable //registramos una variable en http_session_vars // register var in http_session var $HTTP_SESSION_VARS["myvar"]="This is my value. Este es mi valor"; //session_register("n"); <---- has not effect in next session if trac_vars is on and regirter_globals is off //session_write_close(); <<---- is not nesesary no es necesario //redir to amigo2.php redireccionar a amigo2.php //enviar la id de sesion para comprobar sending id session for test. header("location:amigo2.php?identificador=".session_id()); ?> amigo2.php <?php session_start(); // this block for view session id - bloque para comprobar las sesiones echo "anterior (prior): ".$_REQUEST["identificador"]."<p>"; echo "actual: (now) ".session_id()."<p>"; // end block fin del bloque //test: //resque session var - rescatamos la variable de sesion //$mval=$HTTP_SESSION_VARS["myvar"]; // <------ SI, CORRECTO $mval=$_SESSION["myvar"]; // <------ SI, CORRECTO //$mval=$myvar; <------- NO, INCORRECTO!!!! echo "<p><big> ===> ".$mval." <=== </big>"; ?> ---- Manual Page -- http://www.php.net/manual/en/function.session-start.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+48942 Delete -- http://master.php.net/manage/user-notes.php?action=delete+48942&report=yes Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+48942&report=yes&reason=bad+code Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+48942&report=yes&reason=spam Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+48942&report=yes&reason=useless+example Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+48942&report=yes&reason=contains+commercial+links Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+48942&report=yes&reason=useless+note Reject -- http://master.php.net/manage/user-notes.php?action=reject+48942&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#83153) next »