PHP délai d'expiration de session htaccess
Salut, je suis nouveau en programmation mais je suis actuellement en train de travailler sur une session de problème de délai d'attente. Fondamentalement, ma session garde timing, même si j'ai changé la session.gc_maxlifetime.
Je pense qu'un autre script en utilisant le même répertoire pour stocker les données de session qui n'a pas la maxlifetime ensemble, est en cours d'exécution et donc il va utiliser le plus court de valeur. POUR lutter contre cela, j'ai modifié le fichier htaccess mais il est encore appelé à disparaître après une 1h 30min, j'en ai besoin pour durer plus longtemps. Mon fichier htaccess est ci-dessous. J'ai regardé et essayé de nombreux billets sur ce forum mais rien n'a fonctionné jusqu'à présent. Toutes les idées seraient grandement appréciés.
SetEnv PHPRC /home/rocket/public_html/php.ini
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
<IfModule mod_php5.c>
php_value session.save_path "new/username/php_sessions"
php_value session.gc_maxlifetime "86400"
php_value session.cookie_lifetime "86400"
</IfModule>
# END WordPress
var_dump(ini_get('session.save_path'));
, var_dump(ini_get('session.gc_maxlifetime'));
et var_dump(ini_get('session.cookie_lifetime'));
montrer à l'intérieur de votre script PHP?Comme une note de côté, je soupçonne que votre dernière règle de réécriture devrait probablement lu
RewriteRule ^.*$ /index.php [L]
hey, thnks pour la réponse. Gre les 3 premiers être dans le php.ini? Je ne suis pas très bon à ce jeu lol, mais je suis assez nouveau à la programmation. Le dernier morceau de code où vous suggère de changer les règles de réécriture n'était pas écrit par moi et semble fonctionner. Serait-ce code effet le code d'expiration?
OriginalL'auteur CheekyKinkyMinx | 2012-05-22
Vous devez vous connecter pour publier un commentaire.
PHP ne pas faire avec les cookies de session ce qu'on pourrait penser, il ne...
php_value session.gc_maxlifetime "86400"
Ce ne fixe le délai après lequel la collecte des ordures peut se produire - car il n'y a qu'une très petite chance que les données de session sera être nettoyée après ce temps, c'est rare d'être le coupable.
php_value session.cookie_lifetime "86400"
Ce définit l'heure à laquelle le cookie de session expire... mais il n'a pas de mise à jour à
session_start()
donc, si vous commencez la session sur une seule page, qui définit l'horloge tic-tac. Déplacer de page en page ne sont pas réinitialiser l'horloge "clock" pour une session avec uncookie_lifetime
de 600 expirera 10 minutes après il a commencé à pas après 10 minutes d'inactivité - vous peut-être de voir ce comportement.Votre meilleur pari est de mettre en
php_value session.cookie_lifetime "0"
cela signifie que le cookie de session expirera seulement lorsque l'utilisateur ferme son navigateur.Si vous souhaitez gérer un arbitraire de l'expiration qui déclenche après une période d'inactivité, il est préférable de le faire dans le code PHP par la définition d'une variable dans la session, quelque chose comme
$_SESSION['expires']
et de vérification/mise à jour/de manipulation, qu'au début de chaque page.pas après 10 minutes d'inactivité? Ce genre de merde le concepteur pense?
J-16 SDiz - pas très utile de poste 🙁 j'ai vraiment du mal ici, j'ai réussit à été à deux jours maintenant.
Merci pour l'aide, je vais la tester et de revenir à vous 🙂
$_SESSION
est un PHP superglobale (c'est un tableau associatif) qui référence les données dans la session, afin de définir une date d'expiration, vous pourriez faire quelque chose commeif(empty($_SESSION['expires'])) $_SESSION['expires'] = strtotime('+ 10 minutes');
et ensuite faire une vérification au début du code pour voir si la session a expiré... voir la "Session d'utilisation de base" sur PHP.net php.net/manual/en/session.examples.basic.phpOriginalL'auteur CD001