Как зарегистрировать глобальные переменные для сессий php - PullRequest
0 голосов
/ 07 апреля 2011

я получаю эту ошибку:

Предупреждение: неизвестно: возможно, ваш сценарий основан на побочном эффекте сеанса, существовавшем до PHP 4.2.3. Обращаем ваше внимание, что расширение сеанса не рассматривает глобальные переменные как источник данных, если не включен параметр register_globals. Вы можете отключить эту функцию и это предупреждение, отключив session.bug_compat_42 или session.bug_compat_warn, соответственно в Unknown в строке 0

В соответствии с этим я должен включить (зарегистрировать) глобальные переменные, верно? Как мне это сделать, и почему ошибка возникает в первую очередь?

Ответы [ 5 ]

5 голосов
/ 07 апреля 2011

Вы вызываете session_start () в ОЧЕНЬ верхней части вашего PHP-документа?

В руководстве по PHP сказано, что функция session_register () устарела с PHP 5.3.0, и полагаться на нее крайне не рекомендуется.

Вместо этого сделайте что-то вроде

$ _ SESSION ['dog'] = "Гав";

Но вы должны вызывать session_start (), прежде чем что-либо еще в вашем документе!

0 голосов
/ 21 марта 2013

после включения register_globals в директиве PHP.

используйте session_start() при запуске php

$barney = "you can try this";
session_register("barney");

// Use of $_SESSION is preferred, as of PHP 4.1.0
$_SESSION["hotel"] = "Starling";

// The old way was to use $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["email"] = "neo@gmail.com";
0 голосов
/ 07 апреля 2011

Глобальные переменные больше не считаются нормальным использованием. Они могут вызывать все виды проблем управления, проблемы выделения памяти. Обычная практика PHP - использовать вместо этого переменные Session ($ _SESSION ["variable_name"]). Если вы действительно настроены на глобалы, вы можете включить их в php.ini.

0 голосов
/ 07 апреля 2011

Похоже, что register_globals имеет значение "Выкл" в вашем файле php.ini.Если у вас есть доступ к нему, вы можете изменить это.Этот поток также имеет отношение:

php-сеанс-побочный эффект-предупреждение-с-глобальными переменными-как-источником-данных

0 голосов
/ 07 апреля 2011

Регистр глобалов был способом определения переменных из _POST / _GET / _SESSION в глобальную область под своим собственным именем. Я никогда не использовал и не видел использование переменных из _SESSION ... но решение остается тем же. PHP должен объявлять путь и строку файла, поэтому все, что вам нужно сделать, - это рефакторинг вашего кода, чтобы перестать полагаться на эту устаревшую функцию.

...