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

search for in the

Instalación/Configuración> <Sesiones
[edit] Last updated: Wed, 22 May 2013

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 incrementa el atractivo de un 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 la parte del cliente o se propaga en el URL.

El soporte para sesiones permite almacenar los datos entre peticiones en el array superglobal $_SESSION. Cuando un visitante accede a su sitio web, 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 se ha enviado un id de sesión específico con la petición. Si éste es el caso, se recrea el entorno anteriormente guardado.

Precaución

Si se activa session.auto_start, la única manera de colocar objetos en las sesiones es cargar su definición de clase usando auto_prepend_file en el que además de cargar la definición de clase se tendrá que emplear serialize() para serializar el objeto y unserialize() para deserializarlo después.

$_SESSION (y todas las variables registradas) son serializadas internamente por PHP utilizando el gestor de serialización especificado en el ajuste ini session.serialize_handler, una vez finalizada la solicitud. Las variables registradas que están sin definir son marcadas como no definidas. En accesos subsiguientes, éstas no estarán definidas por el módulo de sesión a menos que el usuario las defina después.

Advertencia

Debido a que los datos de sesión son serializados, las variables resource no pueden ser almacenadas en la sesión.

Nota:

Por favor, observe que al trabajar 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 al array superglobal $_SESSION. Esto es cierto sin importar si una sesión ha sido iniciada usando la función session_start().

Nota:

PHP 5.2.2 introdujo una característica no documentada para almacenar ficheros 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 - [2 notes]
up
7
payal at radixweb dot com
2 years ago
If you use auto start session, Session cookie will not be created , it will be created only if you will use session_start()
up
-11
ivenms at ivenms dot com
4 years ago
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 | sitemap | contact | advertising | mirror sites