Я пишу довольно простой скрипт, который использует параметр 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, либо напечатать «привет», но ничего из этого не происходит.
Пустая страница — классический пример ошибки 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";
Попробуй это:
if (!isset($_GET['a']) || trim($_GET['a']) == '' || $_GET['a'] == NULL) {
header("Location: https://www.google.com"); // redirect to home page
}
пытаться
if (!isset($_GET['a']) || trim($_GET['a']) == "") {
проверьте руководство на пустое
http://php.net/manual/en/function.empty.php