Variables de Sesion

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

VARIABLES DE SESION

¿Cómo iniciar una Sesión?


En esta sección, discutiremos cómo iniciar una sesión en PHP.

Cuando quieras tratar con variables de sesión, necesitas asegurarte de que la sesión ya
haya empezado. Hay varias formas de iniciar una sesión en PHP.

Usa la Función  session_start .


Este será el método que verás más a menudo, cuando la sesión es iniciada mediante la
función  session_start .

1 <?php
2 // start a session
3 session_start();
4  
5 // manipulate session variables
?>
6
Lo importante es que la función  session_start  debe ser llamada al principio del script,
antes de enviar cualquier salida al navegador. De otra forma, encontrarás el infame
error  Headers are already sent .

Iniciar una Sesión automáticamente


Si existe la necesidad de usar sesiones a lo largo de toda tu aplicación, también puedes
optar por iniciar la sesión automáticamente sin necesidad de usar la
función  session_start .

Hay una opción el el archivo de configuración php.ini que te permite iniciar una sesión


automáticamente para cada petición — session.auto_start . Por defecto, está fijada a  0 ,
pero puedes fijarla a  1  para activar la función de auto inicio.

1 session.auto_start = 1
Por otro lado, si no tienes acceso al fichero php.ini, y estás usando el servidor web
Apache, puedes fijar esta variable usando el fichero .htaccess.

1 php_value session.auto_start 1
Si añades la línea anterior al fichero .htaccess, iniciará una sesión automáticamente en
tu aplicación PHP.

¿Cómo obtener un identificador de Sesión?


Como discutimos anteriormente, el servidor crea un número único para cada nueva
sesión. Si quieres obtener el identificador de sesión, puedes usar la función  session_id ,
como muestra el siguiente fragmento de código:

1 <?php
2 session_start();
3 echo session_id();
?>
4
Esto debería darte el identificador de sesión actual. La función  session_id  es interesante
en porque también puede recibir un argumento— un identificador de sesión. Si quieres
reemplazar el identificador de sesión generado por el sistema por el tuyo propio, puedes
suministrarlo como el primer argumento de la función  session_id .

1 <?php
2 session_id(YOUR_SESSION_ID);
3 session_start();
?>
4
Es importante hacer notar que la función  session_id  debe estar situada antes que la
llamada a  session_start  cuando quieras iniciar una sesión con un identificador de sesión
personalizado.

¿Cómo Crear Variables de Sesión?


En esta sección, exploraremos cómo inicializar variables de sesión en PHP.

Como discutimos anteriormente, una vez que una sesión es iniciada, el array super-
global  $_SESSION  es inicializado con la correspondiente información de sesión. Por
defecto, se inicializa con un array vacío, y puedes almacenar más información usando un
par clave-valor.

Veamos el siguiente script de ejemplo que muestra cómo inicializar las variables de
sesión.

01 <?php
// start a session
02
session_start();
03
 
04 // initialize session variables
05
06 $_SESSION['logged_in_user_id'] = '1';
07 $_SESSION['logged_in_user_name'] = 'Tutsplus';
08  
// access session variables
09 echo $_SESSION['logged_in_user_id'];
10 echo $_SESSION['logged_in_user_name'];
11 ?>
12
Como puedes ver, hemos iniciado una sesión al principio del script usando la
función  session_start . A continuación, hemos inicializado un par de variables de sesión.
Finalmente, hemos accedido a dichas variables usando la super-global  $_SESSION .

Cuando almacenas datos en una sesión usando la super-global  $_SESSION , finalmente se


almacenan en su correspondiente fichero de sesión en el servidor que fue creado cuando
la sesión fue iniciada. De esta forma, los datos de sesión son compartidos entre múltiples
peticiones.

Como discutimos, la información de sesión se comparte entre peticiones, y de esta forma


las variables de sesión inicializadas en una página pueden ser accedidas desde otras
páginas también, hasta que la sesión expira. Generalmente, una sesión expira cuando se
cierra el navegador.

¿Cómo Modificar y Borrar Variables de Sesión?


Puedes modificar y borrar variables creadas previamente en la aplicación de la misma
manera que para las variables PHP regulares.

Veamos cómo modificar variables de sesión.

01
02 <?php
03 session_start();
04  
if (!isset($_SESSION['count']))
05 {
06   $_SESSION['count'] = 1;
07 }
08 else
{
09   ++$_SESSION['count'];
10 }
11  
12 echo $_SESSION['count'];
13 ?>
14
En el script anterior, hemos comprobado en primer lugar si la
variable  $_SESSION['count']  está fijada. Si no lo está , la fijamos a  1 , en otro caso la
incrementamos en  1 . Así que si refrescas la página múltiples veces, deberías ver que ¡el
contador se incrementa en uno cada vez!

Por otro lado, si desearas borrar una variable de sesión, puedes usar la función  unset ,
como se muestra en el siguiente fragmento de código.

01
<?php
02 // start a session
03 session_start();
04  
05 // initialize a session variable
06 $_SESSION['logged_in_user_id'] = '1';
07  
// unset a session variable
08 unset($_SESSION['logged_in_user_id']);
09 ?>
10
 Por lo tanto, ya no puedes acceder a la variables  $_SESSION[‘logged_in_user_id’]  ya
que se eliminó por la función  unset . Así es como puedes alterar la información de la
sesión.

¿Cómo Destruir una Sesión?


En esta sección, veremos cómo puedes destruir una sesión. En la sección anterior,
discutinos la función  unset , que se usa si quieres eliminar variables de sesión
específicas. Por otro lado, si quieres eliminar toda la información relacionada con la
sesión, puedes usar la función  session_destroy .

Intentemos entender cómo funciona usando el siguiente ejemplo.

1 <?php
2 // start a session
3 session_start();
4  
5 // assume that we’ve initialized a couple of session variables in the other script already
6  
7 // destroy everything in this session
session_destroy();
8 ?>
9
La función  session_destroy  elimina todo lo que se almacena en la sesión actual. Por lo
tanto, verás la variable  $_SESSION  vacía en las subsecuentes peticiones ya que la
función  session_destroy  eliminó todos los datos de sesión almacenados en disco.

Generalmente, usarás la función  session_destroy  cuando el usuario va a ser


desconectado.

También podría gustarte