Я написал код для веб-страницы, использующей сеансы. Я использую Mac, и он работает нормально. Я попробовал свою страницу в Windows, и сеансы не работают. Оказывается, переменные сеанса, которые я объявляю, не существуют на других страницах. Я использовал session_start()
в начале каждой страницы, которую у меня есть. Одним из решений, которые я прочитал об этой проблеме, было использование session_write_close()
, но это не сработало. Когда я использую var_dump()
на $_SESSION
, я вижу только те, которые были объявлены на той же странице (это как в Mac, так и в Windows). В окнах и на Mac я использовал Chrome. И одна из причин, по которой я работала на Mac, заключалась в том, что я не получил ошибку, она просто работала, однако, в Windows я получил строку с ошибкой и сказал, что индекс сеанса, который я использую, не определен.Сессии не работают должным образом
В чем проблема в моем случае? И как я могу это решить?
EDIT:
Вот код для установки переменных в сессии, это самый первый блок страницы
<?php
session_start();
session_destroy();
$_SESSION["contestant_name"]["topics_done"] = array(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE); // topics done
$_SESSION["contestant_name"]["topics_score_correct"] = array();
$_SESSION["contestant_name"]["topics_score_wrong"] = array();
$_SESSION["contestant_name"]["correct"] = 0;
$_SESSION["contestant_name"]["wrong"] = 0;
?>
А вот код для чтения переменных
<?php
session_start();
if (isset($_POST["submit"]))
$name = $_POST["name"];
if(!isset($_SESSION["contestant_name"]["name"]))
$_SESSION["contestant_name"]["name"] = $name;
// if ($_SESSION["contestant_name"]["name"] == "")
// $_SESSION["contestant_name"]["name"] = $name;
print $_SESSION["contestant_name"]["name"];
$arr = $_SESSION["contestant_name"]["topics_done"]; // getting it as null or empty
var_dump($_SESSION);
print count($arr);
print_r($arr);
?>
Здесь я пытаюсь использовать переменные сеанса после их хранения на предыдущей странице.
Посмотрите на печенье. – SLaks
Что говорит сеансовая часть вашего phpinfo()? – frenus
Вы используете это на localhost? –