PHP表单POST提交$_POST['search']为空跳转首页问题排查
问题根因
表单提交时,只有设置了name属性的表单控件,才会被浏览器将值包含在请求参数中发送给后端。你的搜索文本输入框没有添加name="search"属性,所以无论输入什么内容,POST请求里都不会携带search字段,后端$_POST['search']永远不存在,必然触发跳转回首页的逻辑。
你当前的输入框代码缺少关键的name属性:
<input type="text" class="form-control" placeholder="...">
修复步骤
- 给搜索输入框补上
name="search"属性,修改后输入框代码:
<input type="text" name="search" class="form-control" placeholder="...">
- 优化后端跳转逻辑,在
header跳转后增加exit终止代码执行,避免跳转触发后后续逻辑仍被运行,同时增加空内容判断,修改后的search.php核心代码:
<?php include('db.php'); //mysql database connection if(!isset($_POST['search']) || trim($_POST['search']) === ''){ header('location: index.php'); exit; } $filtervalues = trim($_POST['search']); ?>
注意事项
后续基于$filtervalues做数据库查询时,务必使用PDO或mysqli的预处理语句绑定参数,不要直接拼接SQL字符串,避免引发SQL注入漏洞。
内容的提问来源于stack exchange,提问作者tobieche
相关产品推荐
相关产品推荐

