我在格式化代码时遇到问题,但无法找到, 这是我将搜索栏放在以下位置的表单:
<form>
<?php include_once("searchbar.php"); ?>
</form>
这是我的搜索条形码:
<form method= "post" action = "search.php">
<input type="text" name="search_input" placeholder="Search Designer Sofas..." />
<input type="submit" value="Search" />
</form>
这是搜索结果页面的开头
<!DOCTYPE html>
<?php
//retrieves the specified element from the URL
$search_input = $_POST["search_input"];
include_once("connection_to_db.php");
//isset function checks if a variable is set
if(!isset($search_input))
{
print("Nothing to search !");
return;
}
//take the books with the specific name
$query_products = "SELECT * FROM XXX WHERE name LIKE '%".$search_input."%'";
$query_product_result = mysql_query($query_products)
or die(mysql_error());
$num_rows_products = mysql_num_rows($query_product_result);
?>
<html lang="en">
<head>
现在发生的情况是,当我点击搜索按钮时,地址会在搜索查询的网址中发生变化,但页面没有,这是否意味着它发送给它但没有收到任何内容?
答案 0 :(得分:1)
看起来你有嵌套的<form>
元素。这就是表单的呈现方式:
<form>
<form method= "post" action = "search.php">
<input type="text" name="search_input" placeholder="Search Designer Sofas..." />
<input type="submit" value="Search" />
</form>
</form>
第二种形式(带动作的形式)将被忽略。删除包含<form>
的{{1}}包装。
你也对SQL注入攻击持开放态度。考虑使用mysqli prepared statements。
答案 1 :(得分:0)
输入=签署行动
<form method="post" action="search.php">
<input type="text" name="search_input" placeholder="Search Designer Sofas..." />
<input type="submit" value="Search" />
</form>
并尝试从
中删除表单标记<?php include_once("searchbar.php"); ?>