Intereting Posts
Laravel 5.3 – уведомления и субнотики с разбивкой по страницам один раз? Увеличьте размер загрузки на Nginx Каков самый быстрый способ опроса таблицы MySQL для новых строк? Обновление базы данных Olson tz изначально реализовано в PHP PHP mkdir (), chmod () и Windows array_udiff не работает как ожидалось Система для отслеживания избранных пользователей PHP Apple iOS Push Notifications: Command2: бинарный интерфейс и формат уведомлений Как обрабатывать Предупреждение: SimpleXMLElement :: __ construct ()? PHP: Что такое языковые конструкции и зачем они нам нужны? Проблемы с переносом сайта WordPress из локального сайта в галерею NextGen Laravel – принудительный выход определенного пользователя по идентификатору пользователя лучший способ защитить простой wysiwyg с помощью php Почему ссылки на моем прозрачном div становятся незаметными в IE? Развертывание на Laravel Forge бросание фейкера не найдено Исключение

PHP Undefined Index

Это будет звучать действительно глупо, но я не могу понять, почему я получаю эту ошибку.

Я создал поле выбора, названное «query_age» в моей форме html:

<form method="get" action="user_list.php"> <select name="query_age"> <option value="">Doesn't matter</option> <option value="between 18 and 30">18 - 30</option> <option value="between 31 and 40">31 - 40</option> <option value="between 41 and 50">41 - 50</option> <option value="between 51 and 60">51 - 60</option> <option value="between 61 and 70">61 - 70</option> <option value="between 71 and 80">71 - 80</option> <option value="between 81 and 90">81 - 90</option> <option value="> 90">Older than 90</option> </select> 

В соответствующей форме php у меня есть:

 $query_age = $_GET['query_age']; 

Когда я запускаю страницу, я получаю эту ошибку:

Примечание. Неопределенный индекс: query_age в index.php в строке 19

Я не понимаю, почему это происходит, и я хотел бы знать, как заставить его уйти.

Я не вижу php-файл, но это может быть так –
замените в файле php:

 $query_age = $_GET['query_age']; 

с:

 $query_age = (isset($_GET['query_age']) ? $_GET['query_age'] : null); 

Скорее всего, в первый раз вы запускаете свой скрипт без ?query_age=[something] и $_GET не имеет ключа типа query_age .

Проверка присутствия члена перед его назначением, на мой взгляд, довольно уродлива.

Kohana имеет полезную функцию, чтобы упростить выбор параметров.

Вы можете сделать свой собственный так …

 function arrayGet($array, $key, $default = NULL) { return isset($array[$key]) ? $array[$key] : $default; } 

И тогда сделайте что-нибудь вроде …

 $page = arrayGet($_GET, 'p', 1); 

При первом запуске страницы индекс query_age не существует, потому что он не был отправлен из формы.

Когда вы представите форму, она будет существовать, и она не будет жаловаться на это.

 #so change $_GET['query_age']; #to: (!empty($_GET['query_age']) ? $_GET['query_age'] : null); по #so change $_GET['query_age']; #to: (!empty($_GET['query_age']) ? $_GET['query_age'] : null); 

если вы используете isset, как ответ, уже опубликованный синглами, просто убедитесь, что в конце есть скобка:
$query_age = (isset($_GET['query_age']) ? $_GET['query_age'] : null);