Я знаю, что есть много подобных вопросов, и я проводил дни, пытаясь найти решение, но я все еще не могу его решить, поэтому я здесь. Кажется, что идентификатор сеанса изменяется по каждому запросу (между страницами, при каждом обновлении и т. Д.). Переменные сеанса, похоже, не сохранялись на следующей странице, поэтому я попытался захватить идентификатор сеанса (попробовал печать & с использованием дополнения Live HTTP Headers на FF), и каждый раз он отличается.Идентификатор сеанса PHP меняется каждый запрос
Дело в том, что он работал около года назад, прежде чем я временно покинул проект, но когда я попытался вернуться к нему, он больше не работает. Я даже попытался создать очень простую страницу, которая просто печатает переменную сеанса, установленную на предыдущей странице, и до сих пор не повезло. Я убедился, что ничего не печатается до session_start()
, проверил разрешение на путь, хранящийся в session.save_path
, но не могу понять, почему он по-прежнему генерирует новый идентификатор сеанса для каждого запроса. Я подозреваю что-то с конфигурацией, но не могу поверить, что это может быть.
Вот простые страницы, которые я использовал для тестирования:
index.php:
<?php
session_start();
$_SESSION['hello'] = "TESTING";
?>
<!DOCTYPE html>
<html>
<head>
<title>Testing</title>
</head>
<body>
Hello!
<a href="testing.php">click me</a>
</body>
</html>
testing.php:
<?php
session_start();
echo session_id();
print "\nHello, ";
print $_SESSION['hello'];
?>
Это то, что я вижу на живых заголовков HTTP :
Set-Cookie: PHPSESSID=some_id; path=/; domain=.DOMAIN.EXT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Я вижу, что файл cookie истекает мгновенно - может ли это быть? Если это так, что мне нужно сделать, чтобы исправить это?
Все, что мне не хватает?
запустить 'phpinfo()' и проверьте настройки сеанса –
Попробуйте положить 'session_write_close()' в конце сценария. –
@ MichałPrzybyłowicz Это все еще не получилось :(Спасибо, хотя! – Vero