Funciones de sesión
PHP Manual

session_start

(PHP 4, PHP 5)

session_startIniciar una nueva sesión o reanudar la existente

Descripción

bool session_start ( void )

session_start() crea una sesión o reanuda la actual basada en un identificador de sesión pasado mediante una petición GET o POST, o pasado mediante una cookie.

Cuando session_start() es llamada o cuando se autoinicia una sesión, PHP llamará a los gestores de almacenamiento de sesiones open y read. Éstos serán un gestor de almacenamiento proporcionado por omisión o por extensiones de PHP (como SQLite o Memcached); o pueden ser un gestor personalizado como está definido en session_set_save_handler(). La llamada de retorno read recuperará cualquier información se de sesión existente (almacenada en un formato serializado especial) y será deserializada y usada para rellenar automáticamente la variable superglobal $_SESSION cuando la llamada de retorno read devuelva la información de sesión guardada a la gestión de sesiones de PHP.

Para usar una sesión nominada llame a session_name() antes de llamar a session_start().

Cuando session.use_trans_sid está habilidado, la función session_start() registrará un gestor de salida interno para la reescritura de URL.

Si un usuario utiliza ob_gzhandler o similar con ob_start(), el orden de las funciones es importante para la salida adecuada. Por ejemplo, ob_gzhandler se debe registrar antes de iniciar una sesión.

Valores devueltos

Esta función devuleve TRUE si una sesión fue iniciada satisfactoriamente, si no, devuelve FALSE.

Historial de cambios

Versión Descripción
5.3.0 Si una sesión falla al iniciarse, se devuelve FALSE. Anteriormente se devolvía TRUE.
4.3.3 A partir de PHP 4.3.3, llamar a session_start() después de que una sesión estuviera previamente iniciada resultaba en un error de nivel E_NOTICE. También, el segundo inicio de sesión se ignoraba simplemente.

Ejemplos

Ejemplo #1 Un ejemplo se sesión: pagina1.php

<?php
// pagina1.php

session_start();

echo 
'Bienvenido a la página #1';

$_SESSION['color']  = 'verde';
$_SESSION['animal'] = 'gato';
$_SESSION['time']   = time();

// Trabajar si la cookie de sesión fue aceptada
echo '<br /><a href="pagina2.php">página 2</a>';

// O quizás pasar el id de sesión, si fuera necesario
echo '<br /><a href="pagina2.php?' SID '">página 2</a>';
?>

Después de ver pagina1.php, la segunda página pagina2.php contendrá mágicamente la información de la sesión. Lea la referencia de sesiones para informarse sobre propagar las id de sesiones ya que explica, por ejemplo, en qué consiste la constante SID.

Ejemplo #2 Un ejemplo de sesión: pagina2.php

<?php
// pagina2.php

session_start();

echo 
'Bienvenido a la página #2<br />';

echo 
$_SESSION['color'];  // verde
echo $_SESSION['animal']; // gato
echo date('Y m d H:i:s'$_SESSION['time']);

// Puede querer usar SID aquí, como hicimos en pagina1.php
echo '<br /><a href="pagina1.php">página 1</a>';
?>

Notas

Nota:

Para usar sesiones basadas en cookies, session_start() debe ser llamada antes de imprimir cualquier cosa en el navegador.

Nota:

Se recomienda el uso de zlib.output_compression en vez de ob_gzhandler()

Nota:

Esta función envía varias cabeceras HTTP dependiendo de la configuración. Véase session_cache_limiter() para personalizar estas cabeceras.

Ver también


Funciones de sesión
PHP Manual