如果$ _GET [' id']无效或为空,则重定向到home.php

时间:2016-03-09 12:36:35

标签: php

如果$ _GET [' id']为空,或者如果找不到具有该ID的用户,我想重定向用户,是否有人可以提供一个简单的示例?

5 个答案:

答案 0 :(得分:2)

您要求满足这两个条件,但我认为您可以将所有检查封装在一个函数中。

/**
 * Checks if a user id is valid and user exists
 * @param integer $id
 * @return boolean
 */               
public function validate_user($id){
    // always validate whatever input you get from users
    $valid_id = filter_var($id, FILTER_VALIDATE_INT);
    if ($valid_id){
        // check if the user_id is a valid user against your APP logic
        return USER::getUser($valid_id);
    }
    return false;
}


if(!validate_user($_GET['id'])){
    header('Location:home.php');
} 

答案 1 :(得分:1)

您可以使用PHP的empty()来检查它是否为空。

if(empty($_GET['id']) {
    header("Location: page.php");
    exit;
} else
    // not empty
}

从字面意义empty()开始意味着变量为空。它是一个BOOL函数,这意味着它将在空时返回true,而在非空时返回false

此外,请记住在exit之后使用header,因为除非声明exit,否则PHP脚本不会停止执行。

答案 2 :(得分:1)

我建议您使用函数emptydocumentation here),因为它会检查其他情况,而不仅仅是空字符串。如果是一个简单的检查,你不需要使用大括号eather,把它放在你的文件的开头,它应该工作。

if(empty($_GET['id']))
    header('Location:index.php');

答案 3 :(得分:0)

这是一个简单的例子。对于重定向,您可以使用php' header()' funciton。希望这可以帮助。

if($_GET['id']==''){
    header('Location:somepage.php');
    } 

答案 4 :(得分:0)

如果它是空的,你可以使用DevMan的答案。

如果数据库中没有id,你可以设置查询,创建变量$ find = 0,并使用while循环遍历表并检查$ _GET ['id'] == $ id(这是来自数据库的id。)

如果它们匹配而不是$ find ++,那么它将保持为0。

if($find == 0){
   header('Location:somepage.php');
}

如果你想要先检查它是否为空(如DevMan发布),以及是否在我发布的数据库中有该id。