en el servidor donde ejecuta la aplicación php, para la ruta específica debe verificar con phpinfo ()
densidadx
Respuestas:
168
La ubicación del $_SESSIONalmacenamiento variable está determinada por la session.save_pathconfiguración de PHP . Por lo general, esto está /tmpen un sistema Linux / Unix. Use la phpinfo()función para ver su configuración particular si no está 100% seguro al crear un archivo con este contenido en DocumentRootsu dominio:
<?php
phpinfo();?>
Aquí está el enlace a la documentación de PHP en esta configuración:
Como ya se mencionó, los contenidos se almacenan en el servidor. Sin embargo, la sesión se identifica mediante un id de sesión, que se almacena en el cliente y se envía con cada solicitud. Por lo general, el ID de sesión se almacena en una cookie, pero también se puede agregar a las URL. (Ese es el PHPSESSIDparámetro de consulta que algunas veces ves)
+1 porque ha implicado que las cookies no almacenan el contenido de $ _SESSION (estos contenidos se almacenan en el servidor, por lo que no son vulnerables a modificaciones por parte del cliente)
shufler
12
Excelente respuesta! Estaba buscando la pregunta: "¿Por qué caducan las sesiones después de eliminar el caché del navegador?". Y me salvaste el día.
Alumno
2
servidor crear archivo sess_7nu9p0fvidvva6ouaugqcc8292 y en alerta de navegador (getCookie ('PHPSESSID')); // 7nu9p0fvidvva6ouaugqcc8292
zloctb
2
Plus1 - Para responder a la pregunta: "... almacenado en el cliente o el servidor?"
Alex Vargas
22
Generalmente se almacenan en el servidor. El lugar donde se almacenan depende de usted como desarrollador. Puede usar la session.save_handlervariable de configuración y la session_set_save_handlerpara controlar cómo se guardan las sesiones en el servidor. El método predeterminado para guardar es guardar sesiones en archivos. El lugar donde se guardan está controlado por la session.save_pathvariable.
Una adición: debe tenerse en cuenta que, en caso de que "/ tmp" sea el directorio donde se almacenan los datos de la sesión (que parece ser el valor predeterminado), las sesiones no persistirán después del reinicio de ese servidor web, como "/ tmp "a menudo se purga durante el reinicio. El concepto de una persistencia basada en el cliente se mantiene y cae con la persistencia del almacenamiento en el servidor, lo que podría fallar si se usa el directorio "/ tmp" para los datos de la sesión.
En Debian (¿no es este el caso para la mayoría de las distribuciones de Linux?), Se guarda en / var / lib / php5 /. Como se mencionó anteriormente, está configurado en su php.ini.
Gracias, eso es todo lo que quería. Sí, si no estuvieran en el lugar habitual, tendré que abrir las INI, pero solo quería saber "Oye, ¿dónde se almacenan generalmente las sesiones ?" / var / lib / php / sessions / es.
Eric L.
7
Como señaló el Sr. Taylor, esto generalmente se establece en php.ini. Por lo general, se almacenan como archivos en un directorio específico.
La mayoría de las sesiones establecen una clave de usuario (llamada sessionid) en la computadora del usuario que se parece a esto: 765487cf34ert8dede5a562e4f3a7e12. Luego, cuando se abre una sesión en otra página, escanea la computadora en busca de una clave de usuario y se ejecuta en el servidor para obtener sus variables.
Si borra la memoria caché por error, su clave de usuario también se borrará. Ya no podrá obtener sus variables del servidor ya que no conoce su identificación.
Muchas de las respuestas anteriores son opacas. En mi opinión, el autor de esta pregunta simplemente quiere saber dónde se almacenan las variables de sesión de forma predeterminada. De acuerdo con esto: https://canvas.seattlecentral.edu/courses/937693/pages/10-advanced-php-sessions simplemente se almacenan en el servidor de forma predeterminada . Con suerte, otros encontrarán esta contribución significativa.
Respuestas:
La ubicación del
$_SESSION
almacenamiento variable está determinada por lasession.save_path
configuración de PHP . Por lo general, esto está/tmp
en un sistema Linux / Unix. Use laphpinfo()
función para ver su configuración particular si no está 100% seguro al crear un archivo con este contenido enDocumentRoot
su dominio:Aquí está el enlace a la documentación de PHP en esta configuración:
http://php.net/manual/en/session.configuration.php#ini.session.save-path
fuente
Como ya se mencionó, los contenidos se almacenan en el servidor. Sin embargo, la sesión se identifica mediante un id de sesión, que se almacena en el cliente y se envía con cada solicitud. Por lo general, el ID de sesión se almacena en una cookie, pero también se puede agregar a las URL. (Ese es el
PHPSESSID
parámetro de consulta que algunas veces ves)fuente
Generalmente se almacenan en el servidor. El lugar donde se almacenan depende de usted como desarrollador. Puede usar la
session.save_handler
variable de configuración y lasession_set_save_handler
para controlar cómo se guardan las sesiones en el servidor. El método predeterminado para guardar es guardar sesiones en archivos. El lugar donde se guardan está controlado por lasession.save_path
variable.fuente
Una adición: debe tenerse en cuenta que, en caso de que "/ tmp" sea el directorio donde se almacenan los datos de la sesión (que parece ser el valor predeterminado), las sesiones no persistirán después del reinicio de ese servidor web, como "/ tmp "a menudo se purga durante el reinicio. El concepto de una persistencia basada en el cliente se mantiene y cae con la persistencia del almacenamiento en el servidor, lo que podría fallar si se usa el directorio "/ tmp" para los datos de la sesión.
fuente
En Debian (¿no es este el caso para la mayoría de las distribuciones de Linux?), Se guarda en / var / lib / php5 /. Como se mencionó anteriormente, está configurado en su php.ini.
fuente
Estoy usando Ubuntu y mis sesiones están almacenadas en / var / lib / php5.
fuente
Como señaló el Sr. Taylor, esto generalmente se establece en php.ini. Por lo general, se almacenan como archivos en un directorio específico.
fuente
Para ubuntu 16.10 son sesiones guardadas en / var / lib / php / session / ...
fuente
¿Como funciona? ¿Cómo sabe que soy yo?
La mayoría de las sesiones establecen una clave de usuario (llamada sessionid) en la computadora del usuario que se parece a esto: 765487cf34ert8dede5a562e4f3a7e12. Luego, cuando se abre una sesión en otra página, escanea la computadora en busca de una clave de usuario y se ejecuta en el servidor para obtener sus variables.
Si borra la memoria caché por error, su clave de usuario también se borrará. Ya no podrá obtener sus variables del servidor ya que no conoce su identificación.
fuente
En mi máquina Ubuntu las sesiones se almacenan en
y tienes que hacerlo
sudo ls
en este directorio solols
arrojaráY en mi servidor Windows Wamp, las sesiones de php se almacenan en
y si instala php independiente en Windows, entonces no hay un valor establecido por defecto
fuente
Muchas de las respuestas anteriores son opacas. En mi opinión, el autor de esta pregunta simplemente quiere saber dónde se almacenan las variables de sesión de forma predeterminada. De acuerdo con esto: https://canvas.seattlecentral.edu/courses/937693/pages/10-advanced-php-sessions simplemente se almacenan en el servidor de forma predeterminada . Con suerte, otros encontrarán esta contribución significativa.
fuente