我正在尝试创建一个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(验证)。我正在使用的脚本中有什么问题吗?
谢谢
答案 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注入。