remove - session_start php ejemplos
PHP: ¿Cuál es el tiempo de vida predeterminado de una sesión? (5)
Consulte php.ini el valor establecido para session.gc_maxlifetime es el tiempo de vida de la ID en segundos.
Creo que el valor predeterminado es 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 exacto. Una maravillosa explicación de por qué, y cómo implementar períodos de vida de la sesión está disponible aquí:
Si toco una página que llama a 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?
De acuerdo con un usuario en el sitio PHP.net , sus esfuerzos por mantener la sesión activa fallaron, por 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 la carpeta SessionData, se almacenarán archivos de texto para almacenar la información de la sesión, cada archivo tendrá un nombre similar a "sess_a_big_hash_here".
El valor predeterminado en php.ini para la directiva session.gc_maxlifetime
(el "gc" es para recolección de basura) es 1440 segundos o 24 minutos. Consulte la página Configuación de tiempo de ejecución de la sesión en el manual:
http://www.php.net/manual/en/session.configuration.php
Puede cambiar esta constante en los archivos php.ini o .httpd.conf si tiene acceso a ellos, o en el archivo .htaccess local en su sitio web. Para establecer el tiempo de espera en una hora con el método .htaccess, agregue esta línea al archivo .htaccess en el directorio raíz del sitio:
php_value session.gc_maxlifetime "3600"
Tenga cuidado si está en un host compartido o si aloja más de un sitio donde no ha cambiado el predeterminado. La ubicación de la sesión predeterminada es el directorio / tmp, y la rutina de recolección de basura se ejecutará cada 24 minutos para estos otros sitios (y eliminará las sesiones en el proceso, independientemente de cuánto tiempo deben mantenerse). Vea la note en la página del manual o en este sitio para una mejor explicación.
La respuesta a esto es mover sus sesiones a otro directorio usando session.save_path. Esto también ayuda a evitar que los tipos malos asalten sus sesiones de visitantes del directorio predeterminado / tmp.
Pero cuidado, en la mayoría de las configuraciones xampp / ampp /...- y algunas asignaciones de linux es 0, lo que significa que el archivo nunca se eliminará hasta que lo hagas dentro de tu script (o esté sucio a través del shell)
PHP.INI:
; Lifetime in seconds of cookie or, if 0, until browser is restarted.
; http://php.net/session.cookie-lifetime
session.cookie_lifetime = 0
depende de tu configuración de php ...
use phpinfo()
y eche un vistazo al capítulo de la sesión. Hay valores como session.gc_maxlifetime
y session.cache_expire
y session.cookie_lifetime
que afectan a las sesiones de por vida
EDITAR: es como Martin escribir antes