Capitulos de este wiki
  1. 1 Manejo de Sesiones en PHP
  2. 2 No perder información

Manejo de Sesiones en PHP - Manejo de Sesiones en PHP

1 - Manejo de Sesiones en PHP

[editar]
Tutorial creado por Mononeurona. Extraido de: http://www.mononeurona.org/index.php?idp=208
27 de Octubre de 2005
Las sesiones nos permiten almacenar y consultar información sobre un visitante sin necesidad de estar enviándola a través de formularios. Usted podría decir "eso ya lo hago con las cookies", pero el uso de las cookies es cada vez más limitado. Muchos navegadores las deshabilitan por omisión pues guardan información en la computadora del usuario y esto las hace inseguras (existen varios programas hackeriles para extraer contraseñas guardadas en las cookies). PHP posee un repertorio interesante de funcionalidades que nos permiten hacer todo lo que hacemos con las cookies sin guardar nada en la computadora del visitante.


Las sesiones de PHP se guardan en un directorio asignado del servidor donde Apache se ejecuta. Generalmente este directorio es /tmp pero es posible modificarlo desde el archivo /etc/php4/apache/php.ini. Estos archivos están vinculados al usuario que navega a través de un identificador especial llamado "Session ID". La mayoría de las veces el usuario no se entera de que está en una sesión al navegar por un sitio en la red.

Las sesiones pueden usarse para muchas cosas pero la gran mayoría de las veces se usan para establecer los derechos de un usuario en el sitio luego de logearse con un nombre de usuario y una contraseña. 


¡Basta de teoría!  Para empezar a trabajar una sesión en PHP lo primero es iniciarla con  la función session_start() , esta función debe estar ANTES de cualquier otra cosa. Esto es muy importante, de no colocarla antes obtendrás mensajes como:


Warning: Cannot send session cookie - headers already sent by (output started at session_header_error/session_error.php:2) in session_header_error/session_error.php on line 3

Warning: Cannot send session cache limiter - headers already sent (output started at session_header_error/session_error.php:2) in session_header_error/session_error.php on line 3

Este error es producido por el siguiente código:

<?php
echo "Pablito clavo un clavito, en la calva de un calvito:<br />";
session_start();
?>


El error ocurre porque la línea "Pablito..." se envia antes de la función session_start(). La manera correcta de hacerlo sería así:

<?php
session_start();
echo "Pablito clavo un clavito, en la calva de un calvito:<br />";
?>


La diferencia entre mandarla antes o después radica en que cualquier petición http es tomada y negociada de inmediato por el Webserver. Al colocar el inicio de sesión después de que algo le ha llegado a Apache hace imposible iniciarla pues ya ha habido un intercambio de información.  Incluso una línea vacía después de <?php será procesada por Apache, y en consecuencia, la sesión no podrá iniciarse.
[editar]

25 opiniones

Gracias por miles

Mis más sinceras congratulaciones y agradecimientos....por fin lo que tanto necesitaba
Grandioso.

Realmente el primer empujon que deseaba, gracias!!!!.
Excelente, mejor no pudo ser.

Mil felicidaeds por ese gran manual, bastante claro y util
me sirve muchisimo para un proyecto que estaba desarrolando y no sabia como utilizar las sesion. Gracias nuevamente

fabian
hieluki. Com.
Genial!.

Excelente tranajo

ahora entendi todo

muchas gracias.
Gracias.

Ta bueno, acalra mucho para los que se estan inciando con php. Gracias!.
1 2 3 4 5 | siguiente >

Tutoriales relacionados con 'Manejo de Sesiones en PHP'

Las sesiones nos permiten almacenar y consultar información sobre un visitante sin necesidad de estar... Más »
PHPlib es un conjunto de clases que permiten de manera rápida y fácil manejar las... Más »

Autor y licencia de 'Manejo de Sesiones en PHP'


Tutorial de Mononeurona. Extraido de: http://www.mononeurona.org/index.php?idp=208 CopyLeft
Este trabajo está licenciado bajo la Creative Commons License. 1999-2005 © :: MonoNeurona.org ::
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.