powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Глобальные переменные в PHP
7 сообщений из 7, страница 1 из 1
Глобальные переменные в PHP
    #32467353
playlife
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если php-скрипт расположен на сервере, то проблем не возникает, все переменные инициализируются.
Хотел потестить то же самое на localhost, в php.ini прописал:
register_globals = On
variables_order = "EGPCS"


Но переменные при этом не видны (пишет Undefined variable: ### in c:\home\localhost....... ).
Подскажите, что нужно донастроить?
...
Рейтинг: 0 / 0
Глобальные переменные в PHP
    #32467752
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. версия ПХП ?
2. посмотри phpinfo(), там в самом начале пишется путь к php.ini ( Configuration File (php.ini) Path ). Удостоверься, что ты отредактировал именно этот файл.
3. посмотри, что в phpinfo написано про register_globals
...
Рейтинг: 0 / 0
Глобальные переменные в PHP
    #32467805
playlife
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Макс М.1. версия ПХП ?
4.3.4

Макс М.2. посмотри phpinfo(), там в самом начале пишется путь к php.ini (Configuration File (php.ini) Path ). Удостоверься, что ты отредактировал именно этот файл.
C:\WINNT\php.ini , его и правил....

Макс М.3. посмотри, что в phpinfo написано про register_globals
register_globals = on
...
Рейтинг: 0 / 0
Глобальные переменные в PHP
    #32467837
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты уверен, что имено GET/POST/COOKIE переменые не инициализируются ?

выполни тестовый код
Код: plaintext
1.
2.
3.
<? 
// script.php
echo $test;
?>

и вызови его http://localhost/script.php?test=test_value
Если выведет test_value - то у тебя все нормально.

Возможно автор скрипта не инициализирует переменные в скрипте.
например:
Код: plaintext
1.
2.
3.
 for ($i =  30 ; $i <  127 ; $i++) {
   $str .= chr($i);
}
echo $str; 

тоже выведет Undefined variable: ### in c:\home\localhost
Потому что переменная $str не объявлена. В этом случае либо надо объявлять переменные где надо :
Код: plaintext
1.
2.
3.
4.
5.
6.
 
$str = ""; // < --- !!!
 
for ($i =  30 ; $i <  127 ; $i++) {
   $str .= chr($i);
}
echo $str; 

или понизить уровень вывода ошибок
error_reporting(E_ALL ^ E_NOTICE);

Первый вариант имхо более строгий и более правильный.
...
Рейтинг: 0 / 0
Глобальные переменные в PHP
    #32467918
playlife
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Макс М.Если выведет test_value - то у тебя все нормально.

Да, если задавать переменные в адресной строке, то всё ок.


Дело в том, что переменные берутся из других php-файлов, с помощью функции require() :
Код: plaintext
1.
2.
3.
if($OK)
{
   require( "validate.php" );
   if(!$errors) { require( "add.php" ); }

(я разбираю скрипты Д. Пронина )


Макс М.или понизить уровень вывода ошибок
error_reporting(E_ALL ^ E_NOTICE);
А вот если в php.ini я прописываю error_reporting = E_ALL & ~E_NOTICE , то всё работает, спасибо. Только вот не понятно, если в сети скрипт выполняется, значит у провайдера ини-файл именно с такими установками, что, как я понимаю, не совсем правильно... :-/
...
Рейтинг: 0 / 0
Глобальные переменные в PHP
    #32467945
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ошибки можно исправлять а можно просто не показывать. Когда ты делаешь
error_reporting = E_ALL & ~E_NOTICE
ты именно прячешь ошибки, но не исправляешь.

Есть разные типы ошибок. В данном случае этот тип имеет статус Notice - просто уведомление о том, что переменная не была инициализирована. Многие просто забивают на эти уведомления и на инициализацию переменных.
Но в то же время многие (я в том числе) требуют написания "чистого кода" - то есть чтобы в режиме
error_reporting = E_ALL
display_errors = on
не было никаких ошибок

насчет
> значит у провайдера ини-файл именно с такими установками,
> что, как я понимаю, не совсем правильно...
не обязательно ини-файл. Режим вывода ошибок можно изменить через функцию error_reporting() прямо в скрипте
...
Рейтинг: 0 / 0
Глобальные переменные в PHP
    #32468061
playlife
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался, спасибо !!!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Глобальные переменные в PHP
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]