0

我正在尝试使用此代码来检查用户是否已通过验证,如果没有则将其重定向。我对结果有疑问,因为无论我是否经过验证,它都会不断重定向我。这是代码:

<?php
    if(loggedin()){ 
    $check_active_sql = mysql_query("SELECT * FROM members WHERE username = '$username'") or die(mysql_error());
    while ($check_active_res = mysql_fetch_array($check_active_sql)) {
        $active = $check_active_res['active'];
            if($active == "0"){
                header("Location: login.php?verify=true");
            }
            else
            {
            }
        }
    };
?>

谢谢

4

2 回答 2

1

我假设一旦用户登录,您将数据库中的一个字段设置为 1 为什么不使用会话而不是使用这种方式?

只要您登录用户输入以下代码

session_start();
$_SESSION['logged_in'] = 1;

现在,要检查用户是否登录,只需添加此功能

function check_login() {
if($_SESSION['logged_in'] == 1){
return true;
} else {
return false;
}

然后,如果您想重定向他,只需执行以下操作

if(!check_login()) {
header('location: http://website.com');
}
于 2013-03-16T10:23:12.093 回答
-1

尝试使用 empty() 作为:

     if(empty($active) && $active!=1){
         header("Location: login.php?verify=true");
     }else{

     }

代替

     if($active == "0"){}

empty — 确定变量是否为空

换句话说,如果变量是一个空字符串,它会返回真,假,array(),NULL,“0?,0,和一个未设置的变量。

于 2013-03-16T09:21:05.523 回答