如果$ _GET [' id']为空,或者如果找不到具有该ID的用户,我想重定向用户,是否有人可以提供一个简单的示例?
答案 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)
我建议您使用函数empty
(documentation 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。