|
Глобальные переменные в PHP
|
|||
---|---|---|---|
#18+
Если php-скрипт расположен на сервере, то проблем не возникает, все переменные инициализируются. Хотел потестить то же самое на localhost, в php.ini прописал: register_globals = On variables_order = "EGPCS" Но переменные при этом не видны (пишет Undefined variable: ### in c:\home\localhost....... ). Подскажите, что нужно донастроить? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2004, 16:07 |
|
Глобальные переменные в PHP
|
|||
---|---|---|---|
#18+
1. версия ПХП ? 2. посмотри phpinfo(), там в самом начале пишется путь к php.ini ( Configuration File (php.ini) Path ). Удостоверься, что ты отредактировал именно этот файл. 3. посмотри, что в phpinfo написано про register_globals ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2004, 19:59 |
|
Глобальные переменные в PHP
|
|||
---|---|---|---|
#18+
Макс М.1. версия ПХП ? 4.3.4 Макс М.2. посмотри phpinfo(), там в самом начале пишется путь к php.ini (Configuration File (php.ini) Path ). Удостоверься, что ты отредактировал именно этот файл. C:\WINNT\php.ini , его и правил.... Макс М.3. посмотри, что в phpinfo написано про register_globals register_globals = on ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2004, 21:57 |
|
Глобальные переменные в PHP
|
|||
---|---|---|---|
#18+
ты уверен, что имено GET/POST/COOKIE переменые не инициализируются ? выполни тестовый код Код: plaintext 1. 2. 3.
и вызови его http://localhost/script.php?test=test_value Если выведет test_value - то у тебя все нормально. Возможно автор скрипта не инициализирует переменные в скрипте. например: Код: plaintext 1. 2. 3.
тоже выведет Undefined variable: ### in c:\home\localhost Потому что переменная $str не объявлена. В этом случае либо надо объявлять переменные где надо : Код: plaintext 1. 2. 3. 4. 5. 6.
или понизить уровень вывода ошибок error_reporting(E_ALL ^ E_NOTICE); Первый вариант имхо более строгий и более правильный. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2004, 23:52 |
|
Глобальные переменные в PHP
|
|||
---|---|---|---|
#18+
Макс М.Если выведет test_value - то у тебя все нормально. Да, если задавать переменные в адресной строке, то всё ок. Дело в том, что переменные берутся из других php-файлов, с помощью функции require() : Код: plaintext 1. 2. 3.
(я разбираю скрипты Д. Пронина ) Макс М.или понизить уровень вывода ошибок error_reporting(E_ALL ^ E_NOTICE); А вот если в php.ini я прописываю error_reporting = E_ALL & ~E_NOTICE , то всё работает, спасибо. Только вот не понятно, если в сети скрипт выполняется, значит у провайдера ини-файл именно с такими установками, что, как я понимаю, не совсем правильно... :-/ ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2004, 10:15 |
|
Глобальные переменные в PHP
|
|||
---|---|---|---|
#18+
ошибки можно исправлять а можно просто не показывать. Когда ты делаешь error_reporting = E_ALL & ~E_NOTICE ты именно прячешь ошибки, но не исправляешь. Есть разные типы ошибок. В данном случае этот тип имеет статус Notice - просто уведомление о том, что переменная не была инициализирована. Многие просто забивают на эти уведомления и на инициализацию переменных. Но в то же время многие (я в том числе) требуют написания "чистого кода" - то есть чтобы в режиме error_reporting = E_ALL display_errors = on не было никаких ошибок насчет > значит у провайдера ини-файл именно с такими установками, > что, как я понимаю, не совсем правильно... не обязательно ини-файл. Режим вывода ошибок можно изменить через функцию error_reporting() прямо в скрипте ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2004, 13:15 |
|
|
start [/forum/topic.php?fid=23&fpage=514&tid=1479891]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 144ms |
0 / 0 |