downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Instalación/Configuración> <Sesiones
Last updated: Fri, 20 May 2011

view this page in

Introducción

El soporte para sesiones en PHP consiste en una forma de preservar cierta información a través de accesos subsiguientes. Esto habilita la construcción de aplicaciones más personalizadas e incrementar el atractivo de su sitio web.

Un visitante que accede a su sitio web se el asigna un id único, también llamado id de sesión. Éste es almacenado en una cookie en el lado del cliente o se propaga en la URL.

El soporte para sesiones le permite registrar un número arbitrario de variables para preservarlas a través de las peticiones. Cuando un visitante accede a su sitio, PHP comprobará automáticamente (si session.auto_start está establecido a 1) o sobre su petición (explícitamete a través de session_start() o implícitamente a través de session_register()) si un id de sesión específico ha sido enviado con la petición. Si éste es el caso, se recrea el entorno anteriormente guardado.

Caution

Si activa session.auto_start entonces la única manera de poner objetos en sus sesiones es cargar su definición de clase usando auto_prepend_file en el que puede cargar la definición de clase y tendrá que usar serialize() para serializar su objeto y unserialize() para deserializarlo dsepués.

Todas las variables registradas son serializadas después de que la petición finalice. Las variables registradas que están sin definir son marcadas como no definidas. En accesos subsiguientes, éstas no están definidas por el módulo de sesión a menos que el usuario las defina después.

Warning

Algunos tipos de información no se pueden serializar por lo que no pueden almacenarse en sesiones. Esto incluye variables resource u objetos con referencias circulares (es decir, objetos que pasan una referencia de sí mismos a otro objeto).

Note:

Por favor, observe que, trabajando con sesiones no se crea un registro de una sesión hasta que una variable haya sido registrada usando la función session_register() o añadiendo una nueva clave a la matriz superglobal $_SESSION. Esto es verdadero sin importar si una sesión ha sido iniciada usando la función session_start().

Note:

PHP 5.2.2 introdujo una característica no documentada para almacenar archivos de sesiones en "/tmp" incluso si open_basedir estaba habilitado y "/tmp" no estaba explícitamente añadido a la lista de rutas permitidas. Esta característica ha sido eliminada de PHP a partir de PHP 5.3.0.



add a note add a note User Contributed Notes Introducción
payal at radixweb dot com 09-Nov-2010 06:39
If you use auto start session, Session cookie will not be created , it will be created only if you will use session_start()
ivenms at ivenms dot com 23-Mar-2009 08:08
Here is a sample code which can be used to create logged sessions:

Code for differentiating Guest and Logged members:
<?php
// Starting the session
session_start();

if(isset(
$_SESSION['user']))
    {
       
// Code for Logged members

        // Identifying the user
       
$user = $_SESSION['user'];
       
       
// Information for the user.
   
}
else
    {
       
// Code to show Guests
   
   
}
?>

Code for Logging a User:
<?php
//Username Stored for logging
define("USER", "user");

// Password Stored
define("PASS", "123456");

// Normal user section - Not logged ------
       
if(isset($_REQUEST['username']) && isset($_REQUEST['password']))
            {
               
// Section for logging process -----------
               
$user = trim($_REQUEST['username']);
               
$pass = trim($_REQUEST['password']);
                if(
$user == USER && $pass == PASS)
                    {
                       
// Successful login ------------------
                       
                        // Setting Session
                       
$_SESSION['user'] = USER;
                       
                       
// Redirecting to the logged page.
                       
header("Location: index.php");
                    }
                else
                    {
                       
// Wrong username or Password. Show error here.
                       
                   
}
               
            }
?>
User can be logged successfully with username as "user" and password as 123456.

[NOTE BY danbrown AT php DOT net: Contains a bugfix by (pprem AT pprem DOT net) on 26-APR-2009 with the following note: Dont' write if($user == USER && $pass = PASS).]

 
show source | credits | stats | sitemap | contact | advertising | mirror sites