【问题标题】:Warning: Invalid argument supplied for foreach() HTML embedded警告:为嵌入的 foreach() HTML 提供的参数无效
【发布时间】: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) {?&gt; &lt;div class="mySlides fade"&gt; .... &lt;?php} ?&gt;
  • 你有一个 SQL 注入漏洞。
  • 漏洞在哪里?
  • 我也做了一个博客系统,同样的嵌入式PHP,它的递归也能正常工作。
  • 我发现 jQuery 造成了问题,但我还没有发现,因为从 jQuery 执行的代码是如何被隔离和注释的。

标签: php html database


【解决方案1】:

表单中的 echo 语句没有结尾分号 ;。尝试从那里开始。

<?php echo $search_result['Name'];?>
<?php echo $search_result['Address'];?>
<?php echo $search_result['Country'];?>

【讨论】:

  • 我的 jQuery 和 JavaScript 也有问题。谢谢你,我把一切都修好了。
  • @George 很好。也许您可以向任何未来的观众展示您的解决方案并将此问题标记为已回答。
  • 是的,我已经考虑过了。我会及时即兴发挥,但分号不是解决问题的方法,实际上它们与问题无关。
  • @George 我指的不是我的答案,我指的是你的。您可以回答自己的问题并将其标记为已回答。
  • 我刚刚注意到了。
猜你喜欢
  • 2017-06-01
  • 1970-01-01
  • 2018-12-26
  • 2018-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多