извлечение ($ _GET) PHP заканчивается неопределенной переменной

#php #variables #undefined #versions

#php #переменные #не определено #Версии

Вопрос:

У меня возникли проблемы с:

Обратите внимание: неопределенная переменная: подробно в /var/www/html/premysl/php/web_f7mysql.php в строке 43

Упомянутая строка содержит некоторое условие с $detail == NULL , которое (переменная $detail) должно быть извлечено с помощью extract($_GET) записи в другой файл.

Вот в чем дело — весь проект размещен в корне сервера с PHP 5.4.13 и работает отлично. В любом случае, он не запускается на другом сервере с PHP 5.3.3 (cli).

К сожалению, необходимо заставить его работать со вторым. Я предполагаю, что есть какая-то проблема «совместимости», возможно, разные настройки.

Есть ли у вас какие-либо предложения, на чем сосредоточиться?

Комментарии:

1. Вы не хотите извлекать $_GET

2. ^ Поддержано. Вот почему register_globals это лучше оставить Off в самом темном углу вашей конфигурации.

3. "...a different server with PHP 5.3.3 (cli)" у вас, конечно, нет доступа к $ _GET из командной строки

4. $detail == NULL может быть заменен на empty($detail) , чтобы «избежать» неопределенной ошибки.

Ответ №1:

Ваша строка, которая выглядит следующим образом:

 $detail == NULL
  

Должно быть изменено на combine isset и !empty вот так:

 isset($detail) amp;amp; !empty($detail)
  

Также использование extract($_GET) немного нелепо. Вместо этого просто сделайте это:

 $detail = (isset($_GET['detail']) amp;amp; !empty($_GET['detail'])) ? $_GET['detail'] : null;
  

Также, что касается фактической ошибки:

Обратите внимание: неопределенная переменная: подробно в /var/www/html/premysl/php/web_f7mysql.php в строке 43

Затем просто вставьте эту строку в любую функцию, вызывающую эту проблему в web_f7mysql.php :

 global $detail;