sábado, 22 de noviembre de 2008

Variables de Session en php

http://data3.blog.de/media/628/2425628_dece031612_m.jpeg



Si te encuentras en este post, seguramente ya sabras de que va esto de las variables de session, si no es asi te dire que resumiendo, las variables de session son un tipo especial de variables que nos permiten guardar informacion y concervarla durante una visita de un usuario.

Ejemplificando: si tu creas una variable digamos "$mivariable" en una pagina php cuando sales de esta y comienzas a crear una nueva pagina el valor de $mivariable se pierde, es decir que unicamente existira de manera local en la pagina donde se declaro esta variable, sin embargo si declaramos a "$mivariable" como variable de session podremos utilizarla en todas las paginas de nuestro sitio.

Este tipo de variables comunmente son utilizadas para restringir el acceso a un sitio.


Nota: El servidor crea un objeto de sesion diferente para cada usuario y lo mantiene durante un periodo de tiempo establecido o hasta que se pone fin a la session de manera explicita.


Pues bien una vez puestos en antecedentes vallamos a lo interesante:

Para comenzar a utilizar sessiones primero debemos de crear (o continuar) una session, esto se hara poniendo en las paginas donde queramos usar variables de session la siguiente declaracion:

session_start();

Esta funcion nos devolvera true si la session fue creada correctamente y false en caso contrario.

Clue: Puede que al momento de probar tu pagina esta te arroje un warning, para solucionar esto simplemente pon la declaracion de inicio de session antes que cualquier otra instruccion, inclusive antes del <html>.

Una vez iniciada la session lo siguiente sera crear una variable de session y asignarle un valor, antes de proseguir debo de mencionarles que la manera de crear una variable y asignarle un valor depende de una variable de php llamada register_globals veamos ambos casos.

  • Si register_globals=off o tu version de php es la 5 o mayor ni le busques esta es la opcion que debes de utilizar es por eso que la pongo primero.
$_SESSION['nombre_de_la_variable']=valor;

Para comprobar si tu variable fue registrada puedes implementar la siguiente funcion:

if(isset($_SESSION['nombre_de_la_variable'])){
echo "Registrada"
}else{
echo "No registrada"
}

  • Si register_globals=on entonces lo que debes de hacer es:
$variable_de_session=valor;
session_register("variable_de_session");

Para comprobar si tu variable fue registrada puedes implementar la siguiente funcion:

if(session_is_registered("variable_de_Session")){
echo "Registrada"
}else{
echo "No registrada"
}
Bueno una vez creadas las variables de session y asignados un valor ya sea de la primera o la segunda forma tendremos disponibles estas variables con sus respectivos valores en todas las paginas donde iniciemos session (es decir donde tenga session_start();).

OTRAS FUNCIONES
Las siguientes son funciones validas sin importar de que manera se dio de alta la variable.

  • Para eliminar la session unicamente hay que poner: session_destroy();
  • Para eliminar una variable registrada: session_unregister();
  • Para leer o cambiar el identificador de session actual: session_id();
  • Para eliminar todas las variables de session ojo no destruye la session solo elimina todas sus variables: session_unset();
  • Para leer o cambiar la ruta donde se guardan los datos de la session actual: session_save_path(); hay que configurar save_path para que no de error en php.ini
Pues bien con esto concluye el tema de variables de session, a que es sencillo vdd, bueno si alguien tiene algo que agregar, alguna otra funcion util o algo del tema que quieran compartir, ya saben que sera bien recibido. hasta la proxima!!!