为了账号安全,请及时绑定邮箱和手机立即绑定

变量在 if 语句外部而不在其内部起作用

变量在 if 语句外部而不在其内部起作用

PHP
万千封印 2022-06-17 14:46:46
我设法获得了我想用于进一步处理的变量。不幸的是,我不能在 if 语句中使用它。有人能告诉我为什么吗?$location = " ";$persons = " ";if (isset($_GET['filter'])) {    $_SESSION['filter'] = "start";    $location = $_GET['destination'];    $checkin = $_GET['checkin'];    $checkout = $_GET['checkout'];    $adults = $_GET['adults'];    $children = $_GET['children'];    $persons = $adults + $children;    $query = "SELECT * FROM hotels WHERE location LIKE '$location%' AND persons >= $persons";    $results = mysqli_query($db, $query);}echo $location; // Workingif (isset($_SESSION['filter']) && (isset($_GET['highest']))) {    echo $location; // Not working    echo "example"; // Working}
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

可能没有满足第二个 IF 条件,这可能是因为未设置 $_GET['highest']。

另外:请注意,在没有准备好的语句的情况下使用 mysqli_queries 是 SQL 注入的主要安全漏洞。这对 MySQLI 不起作用(正如@Don't Panic 指出的那样),但为了简单起见:假设使用包含恶意 SQL 的 $persons 变量对您的端点发出 GET 请求,例如:

1; DROP *.*;'

使用准备好的语句,您可以告诉您的 MySQL 连接在 SQL 的哪个位置期望什么类型的变量,以便无法注入恶意 SQL。


查看完整回答
反对 回复 2022-06-17
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

请尝试将变量名从 $location 更改为 other



查看完整回答
反对 回复 2022-06-17
  • 2 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信