Si lo golpeo una página que pide session_start()
. ¿Cuánto tiempo tendría que esperar para que, si tuviera que actualizar la página, me emitieran una nueva ID de sesión?PHP: ¿Cuál es la duración predeterminada de una sesión
Respuesta
Salida php.ini al valor establecido para session.gc_maxlifetime es la vida útil de identificación en cuestión de segundos.
Creo que el valor predeterminado es de 1440 segundos (24 minutos)
http://www.php.net/manual/en/session.configuration.php
Editar: Como algunos comentarios señalan, lo anterior no es del todo exacta. Una maravillosa explicación de por qué y cómo implementar cursos de la vida de la sesión está disponible aquí:
-1, no es una respuesta correcta a la pregunta. Malentendido común. – goat
@chris ¿por qué no sugieres una respuesta alternativa? – Brannon
Como Brannon escribe, esto está completamente mal y no debería ser la respuesta seleccionada. Este valor le dice al recolector de basura cómo comportarse, no se trata de cuánto tiempo dura su sesión. Una sesión oculta en vivo para siempre si no agregaste algún mecanismo. La clave es manejar la duración de la sesión por su cuenta (es decir, eliminar los datos de la sesión después de un período de inactividad) y establecer session.gc_maxlifetime a un valor mayor o igual. kontur sugirió la mejor respuesta sobre este punto, pero por favor desvalorice esta respuesta, ya que los resultados conducen a problemas de seguridad. – Ninj
que depende de la configuración de php ...
uso phpinfo()
y echar un vistazo en el capítulo sesión. Hay valores como session.gc_maxlifetime
y session.cache_expire
y session.cookie_lifetime
que afecta a la vida útil sesiones
EDIT: es como Martin escribir antes
El valor por defecto en el php.ini para la directiva session.gc_maxlifetime
(el "GC" es para la recolección de basura) es 1440 segundos o 24 minutos. Ver la página de sesión en tiempo de ejecución Configuation en el manual:
http://www.php.net/manual/en/session.configuration.php
Puede cambiar esta constante en el php.ini o archivos .httpd.conf si tiene acceso a ellos, o en el archivo .htaccess local su página web. Para establecer el tiempo de espera de una hora utilizando el método .htaccess, agregue esta línea al archivo .htaccess en el directorio raíz del sitio:
php_value session.gc_maxlifetime "3600"
tener cuidado si usted está en un servidor compartido o si se alberga más de un sitio donde no ha cambiado el valor predeterminado. La ubicación de sesión predeterminado es el directorio/tmp, y la rutina de recolección de basura se ejecuta cada 24 minutos para que estos otros sitios (y acabar con sus sesiones en el proceso, independientemente del tiempo que deben ser mantenidos). Ver el note en la página manual o this site para una mejor explicación.
La respuesta a esto es mover sus sesiones a otro directorio utilizando session.save_path. Esto también ayuda a evitar que los tipos malos asalten sus sesiones de visitantes del directorio predeterminado/tmp.
-1, no es una respuesta correcta a la pregunta. Malentendido común. un archivo de sesión recopilado de gc no hará que php genere una nueva identificación de sesión, ni el límite de tiempo es confiable incluso cuando las sesiones se guardan en su propio directorio. – goat
Pero cuidado, en la mayoría de las configuraciones /...- xampp/AMPP y algunos destributions Linux Es 0, lo que significa que el archivo nunca se eliminan hasta que lo haga dentro de la secuencia de comandos (o sucio a través de la cáscara)
PHP.INI:
; Lifetime in seconds of cookie or, if 0, until browser is restarted.
; http://php.net/session.cookie-lifetime
session.cookie_lifetime = 0
de acuerdo a un usuario en PHP.net sitio, sus esfuerzos para mantener viva la sesión fallido, lo que tuvo que hacer una solución.
<?php
$Lifetime = 3600;
$separator = (strstr(strtoupper(substr(PHP_OS, 0, 3)), "WIN")) ? "\\" : "/";
$DirectoryPath = dirname(__FILE__) . "{$separator}SessionData";
//in Wamp for Windows the result for $DirectoryPath
//would be C:\wamp\www\your_site\SessionData
is_dir($DirectoryPath) or mkdir($DirectoryPath, 0777);
if (ini_get("session.use_trans_sid") == true) {
ini_set("url_rewriter.tags", "");
ini_set("session.use_trans_sid", false);
}
ini_set("session.gc_maxlifetime", $Lifetime);
ini_set("session.gc_divisor", "1");
ini_set("session.gc_probability", "1");
ini_set("session.cookie_lifetime", "0");
ini_set("session.save_path", $DirectoryPath);
session_start();
?>
En carpeta SessionData se almacenará archivos de texto para la celebración de información de la sesión, cada archivo sería tener un nombre similar a "sess_a_big_hash_here".
- 1. ¿Cuál es la duración de una llamada de Ajax?
- 2. ¿Cuál es la altura predeterminada de UITableViewCell?
- 3. ¿Cuál es la inicialización predeterminada de una matriz en Java?
- 4. Duración predeterminada de Cache.Insert en ASP.NET
- 5. ¿Cuál es la codificación predeterminada para System.IO.File.ReadAllText
- 6. ¿Cuál es la duración óptima para la contraseña del usuario?
- 7. ¿Cuál es la codificación predeterminada para una cadena en VB.NET?
- 8. Cuál es la duración de un Toast LENGTH_LONG y LENGTH_SHORT
- 9. ¿Cuál es la mejor manera de crear una página de inicio de sesión de PHP?
- 10. ¿Cuál es la longitud de una cadena de identificación de sesión de PHP?
- 11. ¿Cuál es la diferencia entre una sesión y una cookie?
- 12. Contraseña de inicio de sesión predeterminada
- 13. ¿Cuál es la codificación predeterminada de la JVM?
- 14. Cuál es la mejor manera de almacenar la duración en MySQL
- 15. Duración de la sesión en node.js con express y MongoDB
- 16. Problemas de la sesión PHP
- 17. ¿Cuál es la mejor forma de obtener una duración de archivo de audio en Android?
- 18. ¿Cuál es la ruta predeterminada de debug.keystore en Mac?
- 19. ¿Cuál es la configuración predeterminada de MongoDB en OSX?
- 20. ¿Cuál es la ubicación predeterminada para los registros de MSBuild?
- 21. variables estáticas, ¿cuál es su duración de vida?
- 22. ¿Cuál es la mejor técnica de hashing para el inicio de sesión de php mysql?
- 23. ¿Cuál es la serialización predeterminada utilizada por ASP.net HttpRuntime.Cache
- 24. Tamaño máximo de una sesión PHP
- 25. ¿Cuál es la codificación predeterminada para las cadenas C?
- 26. ¿Cuál es la longitud máxima de una cadena en PHP?
- 27. Cuál es la zona horaria predeterminada en java.util.Date
- 28. ¿Cuál es la diferencia entre session_unset() y session_destroy() en PHP?
- 29. ¿Cuál es el alcance de una sesión HTTP?
- 30. Sobrescribir la función predeterminada de php
ver también para una respuesta más detallada: http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes – kontur