empty ($ _ GET [‘variable’]) блокирует скрипт, когда переменная не имеет значения

Я пишу довольно простой скрипт, который использует параметр GET для определения переменной в скрипте. Поэтому в начале скрипта я проверяю, что параметр GET существует и что он не пустой (чтобы избежать ...page.php?param=).

Я написал этот кусок кода (параметр называется a):

if (!isset($_GET['a']) || empty($_GET['a'])) {
header("Location: https://..."); // redirect to home page
die();
}

И это работает, когда нет параметра GET вообще, но если есть либо ?a или же ?a=, то страница просто пуста, хотя я добавляю echo "some text";

Я не очень понимаю, что происходит. Может ли кто-нибудь объяснить мне это?

Спасибо 🙂

РЕДАКТИРОВАТЬ: вот вся кодовая страница:

<?php

if (!isset($_GET['a']) || trim($_GET['a']) == '' || $_GET['a'] == NULL) {
header("Location: https://google.com");
exit();
}

echo "hello";

Поэтому я должен либо перенаправить на Google.com, либо напечатать «привет», но ничего из этого не происходит.

0

Решение

Пустая страница — классический пример ошибки PHP. Вам нужно настроить и использовать средство регистрации ошибок PHP вот так:

error_reporting(E_ALL);
ini_set('display_errors', 1);

В самом верху вашей страницы.

Переписав вашу страницу, я бы сделал это:

error_reporting(E_ALL);
ini_set('display_errors', 1);
if (!isset($_GET['a']) || is_null($_GET['a'])) {
header("Location: https://google.com");
exit();
}

echo "hello";
2

Другие решения

Попробуй это:

if (!isset($_GET['a']) || trim($_GET['a']) == '' || $_GET['a'] == NULL) {
header("Location: https://www.google.com"); // redirect to home page
}
-1

пытаться

if (!isset($_GET['a']) || trim($_GET['a']) == "") {

проверьте руководство на пустое
http://php.net/manual/en/function.empty.php

-1
По вопросам рекламы [email protected]