Я знаю, что этот заголовок дублирует 1000 других сообщений, связанных с проблемой, и я заранее извиняюсь, если решение есть. Поверьте мне, я просмотрел множество сообщений по этой теме и пробовал все предлагаемые решения, но не повезло.
Я пытаюсь создать переменные SESSION через следующий код на стр. 1:
<?php $conditionArray = array('Past', 'Past', 'Future', 'Future'); $typeArray = array('Gains', 'Gains', 'Losses', 'Losses'); shuffle($conditionArray); shuffle($typeArray); session_start(); $_SESSION['conditionArray'] = implode(',',$conditionArray); $_SESSION['typeArray'] = implode(',',$typeArray); var_dump($_SESSION); ?> <html> <body> </body> </html>
Теперь var_dump показывает следующее:
array(2) { ["conditionArray"]=> string(23) "Future,Past,Past,Future" ["typeArray"]=> string(25) "Gains,Gains,Losses,Losses" }
что хорошо.
На следующей странице я пытаюсь получить переменную следующим кодом:
<?php session_start(); echo $_SESSION['typeArray']; var_dump($_SESSION); ?> <html> <body> </body> </html>
и это дает мне:
array(0) { }
Я попытался просмотреть файлы журнала ошибок php, и я не вижу ничего значимого. Любая помощь будет принята с благодарностью!
ИСПРАВЛЕНО:
Я чувствую себя довольно глупо, когда нашел решение, но @webgal был прав. Мне нужно было поставить session_start () перед <! DOCTYPE HTML>. Я имел это прямо под ним и над тегом html. Я хотел бы поблагодарить всех вас за ваше время, терпение и усилие и искренне извиниться за свое невежество!
Это может быть проблема с правами доступа. Проверьте, где ваши сессии записываются (session.save_path в вашем ini-файле). Обычно он находится в папке / tmp. Но если он установлен в другую папку, и ваш веб-сервер не имеет прав на запись в него, вы можете столкнуться с этой проблемой.
Кроме того, на следующей странице напечатайте session_id()
чтобы проверить, запущен ли ваш сеанс.