![](/img/trans.png)
[英]If you create a variable inside a if statement is it available outside the if statement?
[英]Variable works outside if statement and not inside it
我设法获得了我想用于进一步处理的变量。 不幸的是,我不能在 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; // Working
if (isset($_SESSION['filter']) && (isset($_GET['highest']))) {
echo $location; // Not working
echo "example"; // Working
}
可能不满足第二个 IF 条件,这可能是因为未设置 $_GET['highest']。
另外:请注意,在没有准备好的语句的情况下使用 mysqli_queries 是 SQL 注入的一个主要安全漏洞。 这不适用于 MySQLI(正如@Don't Panic 指出的那样),但为了简单起见:假设对您的端点的 GET 请求带有一个包含恶意 SQL 的 $persons 变量,例如:
1; DROP *.*;'
使用准备好的语句,您可以告诉 MySQL 连接在 SQL 中的位置期望什么类型的变量,以便无法注入恶意 SQL。
请尝试将变量名称从 $location 更改为其他
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.