我设法获得了想要用于进一步处理的变量。不幸的是,我不能在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
}
答案 0 :(得分:1)
第二个IF条件可能不满足,这可能是因为未设置$ _GET ['highest']。
此外:请注意,使用不带预准备语句的mysqli_queries是SQL注入的主要安全漏洞。这对MySQLI不起作用(如@ Do n't Panic指出的那样),但是为了简单起见:假定对您的端点的GET请求带有$ persons变量,该变量包括恶意SQL,例如:
1; DROP *.*;'
使用准备好的语句,您可以告诉MySQL连接在SQL的什么位置期望什么类型的变量,以便不能注入恶意SQL。
答案 1 :(得分:-3)
请尝试将变量名称从$ location更改为其他