我的php表单不会将页面重定向到其他页面
我有一个简单的形式页面。当我点击Submit按钮时,我有一些sql代码,最后我需要将页面重定向到另一个页面(contact.php)。我的sql代码工作正常,存储在数据库中,但它不会重定向到另一个页面(index.php),并显示具有表单的同一页面(contact.php)。 我使用以下代码重定向我的页面:我的php表单不会将页面重定向到其他页面,php,html,Php,Html,我有一个简单的形式页面。当我点击Submit按钮时,我有一些sql代码,最后我需要将页面重定向到另一个页面(contact.php)。我的sql代码工作正常,存储在数据库中,但它不会重定向到另一个页面(index.php),并显示具有表单的同一页面(contact.php)。 我使用以下代码重定向我的页面: header('Location: index.php'); 我的表单和php代码如下: <form name="contact" action="contact.php"
header('Location: index.php');
我的表单和php代码如下:
<form name="contact" action="contact.php" id="contact_form" method="post" >
<input type="hidden" id="ID" name="ID" value="<?php echo $yid ?>" />
<textarea id="Reason" name="Remark" placeholder="Write your Reason here" class="required" cols="10" rows="10"></textarea>
<input class="button altbutton" type="submit" name="submit" value="submit" />
</form>
if (isset($_POST['submit'])) {
$Remark = @$_POST ['Remark'];
$ID= @$_POST ['ID'];
$query=" my sql code";
$result = mysql_query($query);
header('Location: index.php');
}
HTTP头“Location”似乎并不总是在所有浏览器上正常工作(根据我的经验)。如果在回显“Location”头之前已经回显了一些HTML(或文本,无论什么),PHP函数“header”将无法工作
使用此代码:
<?php
$Js_Redirect =
"<script>"+
"top.location = 'index.php';"+
"</script>";
echo $Js_Redirect;
exit();
?>
我想这是因为您将其放在页面上的输出之后,但没有看到您的代码,这只是一种暗中操作
要重定向到新页面,应使用:
header("Location: index.php");
exit();
此外,请确保将上述内容放在页面上的任何输出之前,否则它将无法工作
执行上述操作时,如果您得到一个空页面,则表明出现了问题(请检查错误日志或确保已打开错误报告)
如果它似乎不起作用:-
首先尝试查找是否有任何错误
使用--
如果您没有发现任何错误。。。。请尝试打印您的查询,以及..在标题之前是否发送了一些html?甚至空白
也试试这个(从)
请记住,在发送任何实际输出之前,必须调用header()
,无论是通过普通HTML标记、文件中的空行还是从PHP。使用include或require函数或其他文件访问函数读取代码,并在调用header()之前输出空格或空行,这是非常常见的错误。使用单个PHP/HTML文件时也存在同样的问题
<html>
<?php
/* This will give an error. Note the output
* above, which is before the header() call */
header('Location: http://www.example.com/');
?>
[]
解决方案1:在您的文件中,将PHP代码移到开头(即
标记上方),并且在使用header()函数之前不要回显任何内容
解决方案2:
如果您在重构代码时遇到困难,那么您需要使用输出缓冲。将ob\u start()
作为php页面的第一行,在使用header()之后使用ob\u end\u flush()
或ob\u end\u clean()
。这有效地缓冲了所有输出,这允许您在实际打印任何输出之前调用header函数。
注意:请记住在设置位置标题后始终退出或die()
。您当前在哪一页?你确定这是正确的路径吗?你能给我们看更多的代码吗?有没有显示错误?您的错误报告设置为什么?我已经编辑了我的代码,并添加了我的表单和php代码。@user1328273:why's no“您的示例无法在所有浏览器上正常工作(因为JS很容易关闭)。服务器端重定向(即原始代码)无论浏览器设置如何,都可以工作。是的,也许,如果你使用手机浏览器,我从未见过HTTP位置头不工作的情况。你能详细说明一下吗?是的。使用die()或exit()在头之后。这将使它停止处理此函数之后的任何其他头,可能是稍后发生冲突的另一个头。
if(isset($your_set_values)
{
header("Location:index.php");
}
error_reporting(E_ALL & ~E_NOTICE);
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
<html>
<?php
/* This will give an error. Note the output
* above, which is before the header() call */
header('Location: http://www.example.com/');
?>