【发布时间】:2012-09-04 07:58:37
【问题描述】:
在我的网站上,我有一个页面,只有在人员详细信息位于名为“成员”的表中时才能查看该页面,这些值是从前一页的表单中发布的。这是我的原始代码,它运行良好:
$query = "SELECT * FROM Members WHERE firstname='" . $firstname . "' and surname='" .
$surname. "'";
$result = mysql_query($query);
$rows = mysql_num_rows($result);
if ($rows == 1)
{
//user continues loading page
}
else
{
header ('location: signup.html'); //user is redirected to sign up page
}
在对网站进行一些更改后,我现在要求同一用户必须在“成员”表中具有paid='TRUE' 才能继续加载页面。这是我想出的代码:
$query = "SELECT * FROM Members WHERE firstname='" . $firstname . "' and surname='" .
$surname. "'";
$result = mysql_query($query);
$rows = mysql_num_rows($result);
$query = "SELECT paid FROM Members WHERE firstname='" . $firstname . "' and surname='" .
$surname. "'";
$result = mysql_query($query);
$paid = mysql_num_rows($result);
if ($rows == 1 && $paid=='TRUE')
{
//user continues loading page
}
else
{
header ('location: signup.html'); //user is redirected to sign up page
}
有了这个新代码,即使用户已经付费,它也会将他们重定向到注册页面...我是不是走错了路?
【问题讨论】:
-
“PAID”是成员表中的一列吗?
-
$paid = mysql_num_rows($result) 将被设置为整数,因此 $paid == 'TRUE' 没有用。第二个 mysql_* 已弃用,尝试使用 PDO 或 mysqli
-
mysql_num_rows 在你的情况下会返回 1