【发布时间】:2018-12-25 16:34:09
【问题描述】:
我已经制作了一个基本的搜索引擎,并尝试在同一页面上获取结果;此外,结果已被检索并存储在关联数组中,但 HTML 中的嵌入代码仅显示结果的一条记录。 `
<?php
require('Configuration/config.php');
require('Configuration/db.php');
//If the user clicks, on the button search, the execute the query
if (isset($_POST['search_btn'])) {
$search_query = $_POST['search'];
//$search_query = htmlspecialchars($_POST['search']);
//Create the query.
$query = "SELECT * FROM The_primary_arkivum WHERE
Name = '$search_query' OR
Address = '$search_query' OR
Category = '$search_query' OR
Country = '$search_query' OR
State = '$search_query'";
//Get the results.
$results = mysqli_query($conn, $query);
//Fetch the data, of the result, to an array.
$search_results = mysqli_fetch_all($results, MYSQLI_ASSOC);
//var_dump($search_results);
//var_dump($search_query);
//Free result
mysqli_free_result($results);
//Close the connection
mysqli_close($conn);
}
?>
<?php include('included/header.php'); ?>
<body>
<div class = "header">
<h2>Search</h2>
</div>
<form method="post" action="search_index.php">
<div class="input-group">
<label>Search</label>
<input type="text" name="search" value="<?php echo $search; ?>">
</div>
<div class="input-group">
<button type="submit" class="btn" name="search_btn">Search</button>
</div>
<?php foreach($search_results as $search_result) : ?>
<div class="mySlides fade">
<?php echo $search_result['Name']?>
<?php echo $search_result['Address']?>
<?php echo $search_result['Country']?>
</div>
<?php endforeach; ?>
</form>
<?php include('included/footer.php'); ?>
`
【问题讨论】:
-
我怀疑你的 foreach 语句试试
foreach($search_results as $search_result) {?> <div class="mySlides fade"> .... <?php} ?> -
你有一个 SQL 注入漏洞。
-
漏洞在哪里?
-
我也做了一个博客系统,同样的嵌入式PHP,它的递归也能正常工作。
-
我发现 jQuery 造成了问题,但我还没有发现,因为从 jQuery 执行的代码是如何被隔离和注释的。