Các PHP kịch bản là như sau:PHP - ini_set ('session.gc_maxlifetime', 5) - Tại sao nó không kết thúc phiên?
<?php // continue.php
ini_set('session.gc_maxlifetime', 5);
session_start();
echo ini_get('session.gc_maxlifetime');
// wait for 7 seconds
usleep(7000000);
if (isset($_SESSION['username']))
{
$username = $_SESSION['username'];
$password = $_SESSION['password'];
$forename = $_SESSION['forename'];
$surname = $_SESSION['surname'];
echo "Welcome back $forename.<br />
Your full name is $forename $surname.<br />
Your username is '$username'
and your password is '$password'.";
}
else echo "Please <a href=authenticate2.php>click here</a> to log in.";
?>
Dựa trên thời gian chờ (tức là từ 5 giây), kịch bản không nên in ra bất cứ điều gì. Tuy nhiên, tôi vẫn nhận được thông báo sau
5Welcome back Bill. Your full name is Bill Smith. Your username is 'bsmith' and your password is 'mysecret'.
Dường như dòng ini_set ('session.gc_maxlifetime', 5) không hoạt động như nó phải được. Tôi đang sử dụng windowsXP + XAMMP.
Bạn có thể cho tôi biết cách làm cho nó hoạt động không?
Cảm ơn bạn
Tôi nghĩ điểm ở đây là phiên vẫn hoạt động, và do đó có lẽ không phải chịu thu gom rác trong mọi trường hợp. Tôi không biết chắc chắn. –
@Pekka Vấn đề là thu gom rác là vô dụng ở đây vì 1) nó sẽ chỉ được gọi với xác suất nhỏ và 2) nó chỉ được gọi là 'session_start'. – Artefacto
đã đồng ý. Ngoài ra, bộ sưu tập rác thậm chí còn vô dụng hơn vì phiên mà chúng tôi đang ở vẫn hoạt động (và một số trình xử lý nội bộ có thể bị khóa). Chính xác? –