Intereting Posts
Фильтры моделей на основе текущего пользователя, прошедшего проверку подлинности Вытягивание данных изображения BLOB из MySQL в PHP Использование cURL для получения всех ссылок на веб-сайте (а не только на странице) PHP не работает, когда функция не определена? PHP создает новый сеанс с каждой перезагрузкой .htaccess throws 403 Создание проекта быстрого запуска Forbidden / Zend Framework (Mac OS X 10.6.5) Ошибка Http 500 Отправка сообщения с помощью PHP54 и Twilio Поля сущности Symfony2, относящиеся к другому объекту API Google Spreadsheet: превышена память Регулярное выражение PHP соответствует последним вхождениям в соответствие шаблону Как узнать, когда MySQL UPDATE был успешным по сравнению с фактически обновленными данными? Временные отметки начала и конца месяца Ошибка Yii Framework / PDO Ошибка CDbCommand не выполнила инструкцию SQL: SQLSTATE Отображение статей с сайта wordpress на сайте, отличном от WordPress. PDO связывает n раз такое же значение с foreach

Как проверить, существует ли $ _GET?

Итак, у меня есть код PHP, который выглядит примерно так:

<body> The ID is <?php echo $_GET["id"] . "!"; ?> </body> 

Теперь, когда я передаю ID, например http://localhost/myphp.php?id=26 он работает нормально, но если идентификатор отсутствует, например, http://localhost/myphp.php он выводит:

 The ID is Notice: Undefined index: id in C:\xampp\htdocs\myphp.php on line 9 ! 

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

    Вы можете использовать функцию isset :

     if(isset($_GET['id'])) { // id index exists } 

    Вы можете создать удобную функцию для возврата значения по умолчанию, если индекс не существует:

     function Get($index, $defaultValue) { return isset($_GET[$index]) ? $_GET[$index] : $defaultValue); } // prints "invalid id" if $_GET['id'] is not set echo Get('id', 'invalid id'); 

    Вы также можете попытаться проверить его в одно и то же время:

     function GetInt($index, $defaultValue) { return isset($_GET[$index]) && ctype_digit($_GET[$index]) ? (int)$_GET[$index] : $defaultValue); } // prints 0 if $_GET['id'] is not set or is not numeric echo GetInt('id', 0); 
      if (isset($_GET["id"])){ //do stuff } 

    Обычно это неплохо делать:

     echo isset($_GET['id']) ? $_GET['id'] : 'wtf'; 

    Это связано с тем, что при присвоении переменной var другим переменным вы можете делать по умолчанию все на одном дыхании, а не постоянно использовать операторы if чтобы просто дать им значение по умолчанию, если они не установлены.

    Вы используете PHP isset

    пример

     if (isset($_GET["id"])) { echo $_GET["id"]; } 

    Вы можете использовать встроенную функцию array_key_exists() :

     if (array_key_exists('id', $_GET)) { echo $_GET['id']; } 

    или встроенная функция isset() :

     if (isset($_GET['id'])) { echo $_GET['id']; } 

    Использовать и empty() whit negation (для теста, если не пусто)

     if(!empty($_GET['id'])) { // if get id is not empty } 

    Попробуйте:

     if(isset($_GET['id']) && !empty($_GET['id'])){ echo $_GET["id"]; }