Потерпите меня, если это похоже на другие вопросы, размещенные здесь, я уже прошел все предоставленные ответы, но не решил свою проблему. Я уменьшил свою проблему до минимума.
page1.php
<?php //start the session session_start(); //set the session $_SESSION['mysession'] = "Hello"; if(isset($_SESSION['mysession'])){ //redirect the person to page 2 session_write_close(); header("Location: page2.php?PHPSESSID=".session_id()); exit(); } else { echo "Session Not Set"; } ?>
page2.php
<?php //start the session session_start(); session_id($_GET['PHPSESSID']); if ( isset ($_SESSION['mysession']) ) echo $_SESSION['mysession']; else echo "Session not set!"; ?>
session_id () необходимо вызвать до session_start ()
Если идентификатор указан, он заменит текущий идентификатор сеанса. session_id () необходимо вызвать до session_start () для этой цели. В зависимости от обработчика сеанса в идентификаторе сеанса допускаются не все символы. Например, обработчик сеанса файлов допускает только символы в диапазоне az AZ 0-9, (запятая) и – (минус)!
Примечание . При использовании файлов cookie сеанса указание идентификатора для session_id () всегда будет отправлять новый файл cookie при вызове session_start (), независимо от того, совпадает ли текущий идентификатор сеанса с тем, который установлен.
session_id () – Руководство по эксплуатации
Вы также можете проверить, будет ли установлен набор проверки подлинности на основе файлов cookie.
Имейте в виду, что если пользователи публикуют URL-адрес, они могут переносить сеанс на другой клиент.
На page2.php
, page2.php
первые 2 строки. + Изменить
session_start(); session_id($_GET['PHPSESSID']);
в
session_id($_GET['PHPSESSID']); session_start();
См. Раздел « Parameters
» здесь ..http: //php.net/manual/en/function.session-id.php