gpt4 book ai didi

php - 更改 PHP/SQL 查询时出现的问题

转载 作者:可可西里 更新时间:2023-11-01 07:47:14 25 4
gpt4 key购买 nike

在我的网站上,我有一个页面,只有当人员详细信息位于名为“成员”的表中时才能查看该页面,值是从上一页的表单中发布的。这是我的原始代码,它运行良好:

$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
}

在对站点进行一些更改后,我现在要求同一用户必须在 Members 表中有 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 是否为“TRUE”,但用 mysql_num_rows 填充它。尝试:

if ($rows > 0  && $paid >0 )

相反。

另外,由于我看不到你是否正确地转义了你的字符串,请注意 $firstname 和 $surname 应该被转义/验证。

无论如何你可以跳过第二个 mysql_query 并使用:

    $query = "SELECT * FROM Members WHERE firstname='" . $firstname . "' and surname='" . 
$surname. "'";
$result = mysql_query($query);
$rows = mysql_num_rows($result);
if( $rows ){

$row = mysql_fetch_assoc($result);
if($row['paid'] =='TRUE') {
//continue
} else {
//redirect
}
}

关于php - 更改 PHP/SQL 查询时出现的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12368845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com