2010-03-17 27 views

Respuesta

11

Porque setcookie()define una cookie que se enviará junto con el resto de los encabezados HTTP. Eso es algo completamente diferente de lo que hace session_start(), p. crear una sesión o reanudar la actual basada en un identificador de sesión pasado a través de una solicitud GET o POST, o pasado a través de una cookie.

La primera simplemente añade algo a la cabecera y lo envía a el navegador, mientras que el otro recibe el ID de sesión de $ _COOKIEs o $ _GET o $ _POST y luego intenta encontrar el archivo de sesión en el session_save_path y cuando se encuentra deserializando los valores de esto en $ _SESSION y si no, cree una nueva sesión, probablemente utilizando setcookie en el proceso para establecer el ID de la sesión.

Véase el chapter on Sessions in the PHP Manual.


Editar Como @Felix correctamente señala más adelante, la sesión no necesariamente se guarda en un archivo. Sin embargo, no es tan importante, porque el argumento sigue siendo el mismo: session_start encontrará e (re) inicializará los datos de su sesión, mientras que setcookie hace lo que su nombre implica.

+0

Lo tengo.Gracias por las respuestas de calidad. – Young

1

véanse las notas explicativas de la respuesta antes que la mía. Si sólo no quiere llamar a la función start_session() echar un vistazo a esta configuración en el php.ini: session.auto_start

1

los datos de sesión no necesariamente se almacenan en un archivo como dice Gordon. Con session_set_save_handler() puede definir su propio back-end que debe almacenar los valores, p. en una base de datos

Todo esto recuperación de datos se maneja con session_start(). De esta forma, puede cambiar fácilmente su programa de fondo sin interrumpir su aplicación.

Nota: Esta es sólo una razón para session_start(), y de nuevo lo hace mucho más que sólo la creación de las cookies.

0

Los datos de la sesión no se almacenan necesariamente en un archivo como dice Gordon. Con session_set_save_handler() puede definir su propio back-end que debe almacenar los valores, p. en una base de datos

Todo esto recuperación de datos se maneja con session_start(). De esta manera puede cambiar fácilmente su back-end sin romper su aplicación.

Nota: Esta es sólo una razón para session_start(), y de nuevo lo hace mucho más que sólo la creación de las cookies.

Cuestiones relacionadas