Я сделал простую страницу регистрации и, когда информация пользователя проверена, прямо перед перенаправлением, их идентификатор сеанса изменяется в соответствии с установленной мной системой токенов. На странице регистрации идентификатор является правильным, и у меня также есть переменный UID, который я устанавливаю вручную. Хотя проблема заключается в том, что на следующей странице идентификатор отличается, а переменная не определена.
$_SESSION['UID'] = $id; session_id($sessID); session_write_close(); header("Location: /website/landing.php"); exit();
Cookies включены, у сеансов есть каталог «C: / xampp / tmp», и он написан, я вижу файлы с правильным идентификатором на странице регистрации. Это работает на localhost, и это соединение https. Я настроил все так, как мне сказали (через многие другие ответы на stackoverflow), это должно быть, и все же на следующей странице:
<?php session_start(); echo session_id()."\n"; echo $_SESSION['UID']; session_unset(); session_destroy(); ?> <!DOCTYPE html> <html> <head> <title>Logged in</title> </head> <body> <h1>Congratulations, you have successfully logged in!</h1> <a href="logout.php" title="">Log Out</a> </body> </html>
Здесь, когда я повторяю идентификатор сеанса, он является новым, и он остается неизменным каждый раз, если я не удалю его из настроек Firefox, но даже тогда новый тоже не является специфичным для пользователя.
Какова причина этого? Я чувствую, что это связано с перенаправлением.
Удалите строки:
session_unset(); session_destroy();
Поскольку они уничтожают сеанс при каждой загрузке страницы. Таким образом, возникает новый сеанс.
Я предлагаю просмотреть документы для session_destroy()
для дополнительных действий, связанных с выходом из системы .