0

我正在尝试创建一个 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(未验证)和 1(已验证)。我正在使用的脚本有问题吗?

谢谢你

4

3 回答 3

3

您需要处理$active结果并将其放入 PHP 变量/数组中。$active因为它在你的代码中只是一个资源(见这里)试试这个:

$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();
}
于 2013-03-15T20:44:07.297 回答
0

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

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

于 2013-03-15T20:44:36.837 回答
0

查询后您没有正确获取数据。

在你执行 mysql_query 函数之后。试试这个:

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

不知道能不能行。

并在那里为 SQL 注入增加一点安全性。并改用 MySQLi,因为您并不热衷于自己防止 SQL 注入。

于 2013-03-15T20:45:10.030 回答