Извините, я не могу задать вопрос по уже отвеченному вопросу, потому что я только что зарегистрировался.
Моя проблема - истечение срока действия сеанса.
Он работает нормально и выходит из системы после установленного времени.
Моя проблема заключается в том, что когда я не вошел в систему, и я снова посещаю сайт, он перенаправляет на страницу выхода из системы. Я почти уверен, что это оказывает негативное влияние на мое SEO.
Это код, который я использовал.
// ********************************* //
// ************ SESSIONS *********** //
// stops javascript from getting the session id. phpacademy
ini_set('session.cookie_httponly', true);
// Start the session:
session_start();
// http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
// last request was more than 60 minutes ago
session_destroy(); // destroy session data in storage
session_unset(); // unset $_SESSION variable for the runtime
header('Location: logged-out.php');
}
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp
// http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes
if (!isset($_SESSION['CREATED'])) {
$_SESSION['CREATED'] = time();
} else if (time() - $_SESSION['CREATED'] > 1800) {
// session started more than 30 minutes ago
session_regenerate_id(true); // change session ID for the current session an invalidate old session ID
$_SESSION['CREATED'] = time(); // update creation time
}
// stops them using proxy servers and other ip addresses.
if (isset($_SESSION['last_ip']) === false);{
$_SESSION['last_ip'] = $_SERVER['REMOTE_ADDR'];
}
if ($_SESSION['last_ip'] !== $_SERVER['REMOTE_ADDR']){
session_unset();
session_destroy();
}
// ************ SESSIONS *********** //
// ********************************* //
Что я могу сделать, чтобы прекратить перенаправление на выход из системы, когда я уже вышел из системы???
Я вижу, что это происходит с другими, использующими statcounter, и их страница посещения не является страницей входа?
Пожалуйста, порекомендуйте.
var_dump($_SESSION['LAST_ACTIVITY'])
узнать, какое значение он дает, чего вы не ожидаете? Я полагаю, что то, как вы написали свое сравнение времени, может быть проблематичным, если у вас есть$_SESSION['LAST_ACTIVITY']
, например, пустое строковое значение (посколькуtime() - 0
ВСЕГДА будет > 1800) - person Mike Brant   schedule 13.01.2014