PHP Select Value&使用If语句重定向

时间:2013-03-15 20:38:45

标签: php redirect if-statement

我正在尝试创建一个php scipt,用于检查成员在页面上是否已经过验证。如果不是,他们会被重新注册以登录并显示错误消息&说明。所以在页面上我有这个代码:

<?php
    if (loggedin()) {
        $check_active = "SELECT active FROM members WHERE username == '$username'";
        $active = mysql_query($check_active);
        if ($active < 1) {
            header("Location: login.php?verify=true");
        } else {
            exit();
        }
    }
?>

它将用户重定向回登录页面,但无论用户是否处于活动状态,都会将其重定向。活跃成员的值为0(未验证)&amp; 1(验证)。我正在使用的脚本中有什么问题吗?

谢谢

3 个答案:

答案 0 :(得分:3)

您需要处理$active结果并将其放入PHP变量/数组中。代码中的$active只是一个资源(请参阅here)试试这个:

$active = mysql_query($check_active); // run query and return resource

$row = mysql_fetch_assoc($active);  // put resource data into php array   

if ($row['active'] < 1) {
    header("Location: login.php?verify=true");
} else {
    exit();
}

答案 1 :(得分:0)

请不要使用旧mysql,使用mysqli_或阅读http://php.net/manual/en/function.mysql-query.php上的主题。

相反,应该使用MySQLi或PDO_MySQL扩展。另请参阅MySQL:选择API指南和相关常见问题解答以获取更多信息。

答案 2 :(得分:0)

查询后,您无法正确获取数据。

执行mysql_query函数后立即执行。试试这个:

$output = mysql_fetch_assoc($active);
$active_result = $ouput['active'];

不知道它是否有用。

为SQL注入添加更多安全性。 并且使用MySQLi,因为你不喜欢自己防止SQL注入。