Академический Документы
Профессиональный Документы
Культура Документы
Variables de sesión
Con cualquier opción de register_globals
La verdadera utilidad de trabajar
con sesiones estriba en la Aquí tenemos un ejemplo en el que utilizamos las funciones PHP específicas para el
posibilidad de propagar junto con tratamiento de sesiones.
ellas los valores de las variables de
sesión. En el caso de que la versión de PHP no admitiera superglobales habría que sustituir
$_SESSION por $HTTP_SESSION_VARS y tener presente el carácter no global de esta
Se trata de ir añadiendo y última variable.
propagando variables con sus
valores, y de la posibilidad de
utilizarlas de la misma forma que <?
se utilizarían las variables externas # iniciamos la sesión
enviadas a través de un formulario. session_start();
# visualizamos el identificador de sesión
Igual que ocurría en caso de los echo "Este es el identificador de sesion: ",session_id(),"<br>";
formularios, también las variables # registramos una variable de sesión asignandole un nombre
de sesión pueden ser tratadas de
$_SESSION['variable1'];
forma distinta según como estén
configurado PHP (php.ini) y cual #asignamos un valor a esa variable de sesión
sea la versión de PHP que $_SESSION['variable1']="Filiberto Gómez";
utilicemos. # registramos una nueva variable de sesión
#asignandole directamente un valor
$_SESSION['variable2']="Otro filiberto, este Pérez";
Register globals #comprobamos la existencia de la variables de sesión
echo "Mi_variable1 esta registrada: ",
Las variables de sesión tienen, isset($_SESSION['variable1']),"<br>";
como ocurría en otros casos, una #leemos el contenido de esa variable
sintaxis común (que no depende print "Su valor es: ".$_SESSION['variable1']."<br>";
de la configuración de la directiva
#comprobamos la existencia de la otra variable y la visualizamos
register globals) y una específica –
echo "Mi variable2 esta registrada :",
añadida a la anterior– para el caso
en que register globals esté isset($_SESSION['variable2']),"<br>";
activado. print $_SESSION['variable2']."<br>";
#destruimos la variable1
A diferencia de los casos que unset($_SESSION['variable1']);
hemos visto anteriormente, echo "La variable1 ha sido destruida:",
cuando se trata de sesiones no isset($_SESSION['variable1']),"<br>";
existe la similitud sintáctica que print $_SESSION['variable1']."<br>";
existía en aquellos casos.
#destruimos todas las variables restantes
Esa es la razón por la que no unset($_SESSION);
vamos a incluirla. Su utilidad #comprobamos que han sido destruidas
práctica es nula y podría crearnos
cierta confusión. echo "La variable1 ya estaba vacia:",
isset($_SESSION['variable1']),"<br>";
El hecho de que PHP mantenga print $_SESSION['variable1']."<br>";
activas las funciones de esa opción
obedece únicamente a razones de
echo "También ha sido destruida la variable2: ",
tipo práctico. La decisión de
eliminarlas de las nuevas versiones
$_SESSION['variable2'],"<br>";
podría ocasionar serios perjuicios a print $_SESSION['variable2']."<br>";
programadores que tienen
desarrolladas sus aplicaciones con ?>
la antigua sintaxis y que se verían
obligados a modificar el código
fuente de todos sus scripts Ejemplo 128.php
anteriores.
Propagación de sesiones
Manejo de variables
Los tres scripts siguientes son un ejemplo del uso de sesiones para la propagación de
Las funciones más importantes
para el manejo de variables de
sesiones.
sesión son las siguientes:
Funcionan bajo cualquier forma de register_globals y también en el caso en que las
$_SESSION['var'] cookies estuvieran desactivadas en el navegador del cliente
foreach($_SESSION as $indice=>$valor){
Propagación de las
print("Variable: ".$indice." Valor: ".$valor."<br>");
variables }
# modificamos los valores de las variables de sesion
Las variables $_SESSION['var'] # de igual forma que si fueran variables de cualquier otro tipo
creadas en cualquier página, se
propagan a todas las demás $_SESSION['valor1']+=87;
páginas a las que se propague la $_SESSION['valor2'] .=" bonito nombre";
sesión, sin que para ello sea
# destruimos la tercera variable
necesaria ninguna actuación
específica. unset($_SESSION['variable3']);