PHP满足查询条件时header跳转页面失效问题求助
PHP header跳转无反应的解决方法
核心错误:header函数格式用错了
你代码里写的header("test.php")是错误写法,HTTP跳转的header必须带Location:前缀,正确写法是:header("Location: test.php");必须在任何输出前调用header
如果调用header之前有任何输出(包括echo内容、HTML标签、甚至文件开头的空格/换行),都会导致header失效。检查你的代码文件开头有没有多余空格,或者header之前有没有echo、print这类输出操作。加exit/die终止后续代码执行
调用header后一定要加上exit()或die(),不然PHP会继续执行后面的代码,可能导致跳转失效:header("Location: test.php"); exit();补上不满足条件时返回原页面的逻辑
当查询结果为空时,要返回原页面可以用$_SERVER['HTTP_REFERER']获取上一页地址,同时要考虑这个变量可能为空的情况,设置默认跳转目标:if($result = mysqli_query($con,$sql)) { if (mysqli_num_rows($result) >= 1) { header("Location: test.php"); exit(); } else { // 无来源地址时默认跳转到首页,可根据需求修改 $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '/'; header("Location: " . $referer); exit(); } } else { echo "Wrong"; exit(); }额外排查:临时开启错误提示
可以临时开启PHP错误提示,帮你定位其他潜在问题:error_reporting(E_ALL); ini_set('display_errors', 1);
内容的提问来源于stack exchange,提问作者James Moore
相关产品推荐
相关产品推荐

