PHP: $ _SESSION никогда не устанавливается, но $ _POST?

[@ the downvote и идиотские замечания, это не здорово, чтобы избивать людей. Я перепроверял документацию и курсовые работы в течение 3 целых дней, прежде чем даже задал вопрос. Закрывая это, чтобы не допустить, чтобы хор идиотов наваливался бесполезными и фактически неправильными комментариями, как это сделал Джеймс. Спасибо Чарльзу и Брент Б за то, что они очень полезны. Это не проблема Safari, поэтому я удалил те теги.]


$ _SESSION не устанавливается в Safari, и, следовательно, разрывается многостраничная форма. $ _POST, $ _REQUEST делают набор (но явно исчезают на последующих страницах). Версии: PHP: 5.3.1, Safari 5.

Помогите! Это не проблема ни с одним из следующих, я проверил их все, и я прочитал все другие связанные вопросы:

  • session_start () работает. SID / PHPSESSID сохраняется на разных страницах.
  • session.use_cookies = 1, session.use_only_cookies = 1
  • Я проверил php.ini и считаю, что все в порядке
  • Я настроил Safari для принятия всех файлов cookie (пока). Нет разницы.
  • Я могу вручную установить $ _SESSION ['debug'], и он сохраняется на всех страницах (и файл сеанса правильно выписан). Если я этого не сделаю, $ _SESSION никогда не будет определяться.

У меня нет времени отлаживать эту бессмыслицу, и какой из следующих обходных решений в последнюю минуту является наименее уродливым? (это назначение программирования, а не производственный код). Согласно примечаниям курса, $ _SESSION предполагается объединить $ _POST, $ _REQUEST, $ _GET, сеанс и глобальные переменные правильно?

  1. вручную выполните $ _SESSION = array_merge ($ _ SESSION, $ _ POST); [это работает]
  2. использовать скрытую форму для повторной отправки $ _POST на последующих формах
  3. Другие?

(В более широком смысле, следует ли PHP просто считать сломанным на Safari (5)?)

$ _SESSION НЕ объединяет другие супер-глобальные массивы, это собственный массив. $ _REQUEST – это слияние $ _POST и $ _GET, но об этом. Из того, что вы описали, $ _SESSION работает правильно. Прочтите официальное руководство. http://www.php.net/manual/en/language.variables.superglobals.php