empty($ _ GET ['variable'])在变量没有值

时间:2016-05-07 08:02:37

标签: php get isset is-empty

我正在编写一个非常简单的脚本,它使用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"; < / p>

我真的不明白发生了什么。有人可以向我解释一下吗?

谢谢: - )

编辑:这是整个代码页:

<?php

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

echo "hello";

所以我应该重定向到Google.com或打印“你好”,但不会发生这种情况。

3 个答案:

答案 0 :(得分:2)

空白页是PHP错误的典型示例。您需要设置use PHP error logging facility,如下所示:

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";

答案 1 :(得分:-1)

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

检查手册是否为空 http://php.net/manual/en/function.empty.php

答案 2 :(得分:-1)

试试这个:

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