此contact.php表单正在处理提交,然后重定向到新页面,然后突然停止工作。我已经尝试添加错误处理,并将标题移动到所有其他前面的顶部,但都不起作用。表单仍然按预期提交数据,只是重定向不起作用。任何想法都将不胜感激。
<?php
include 'config.php';
$post = (!empty($_POST)) ? true : false;
if($post)
{
$email = trim($_POST['email']);
$subject = "Downloaded Course Units";
$error = '';
if(!$error)
{
$mail = mail(WEBMASTER_EMAIL, $subject, $message,
"From: ".$email."\r\n"
."Reply-To: ".$email."\r\n"
."X-Mailer: PHP/" . phpversion());
if($mail)
{
echo 'OK';
header('location: http://www.google.com.au/');
exit();
}
}
}
?>
答案 0 :(得分:20)
使用javascript。
而不是
header('location: http://www.google.com.au/');
使用,
?>
<script type="text/javascript">
window.location.href = 'http://www.google.com.au/';
</script>
<?php
即使您的浏览器输出了某些内容,它也会重定向。
但是,要做出一个预防措施:即使页面上印有某些内容,Javascript重定向也会重定向您的页面。
确保它不会跳过用PHP编写的任何逻辑。
答案 1 :(得分:4)
标头不起作用。 再试一次没有包括,回声。 或者代替函数头 使用
echo '<meta http-equiv="refresh" content="0; URL=http://www.google.com.au/">';
答案 2 :(得分:3)
If you want to redirect to another page after html code then use location.href javascript method.
参考这个简单的代码
<html>
<head>
<title> Using the href property of the Location object</title>
</head>
<body>
<script language="JavaScript">
<!--
function show(){
document.location.href ="http://www.java2s.com";
}
-->
</script>
<form name="form1">
<br>
<input type="button" name="sethref" value="Set href" onClick='show()'>
<br>
</form>
</body>
</html>
答案 3 :(得分:3)
我用以下方法解决了这个问题:
function GoToNow ($url){
echo '<script language="javascript">window.location.href ="'.$url.'"</script>';
}
&#13;
使用: GoToNow(&#39; http://example.com/url-&error=value&#39;);
答案 4 :(得分:0)
除了上述答案外,您还可以在文档和主窗口以及iframe中使用以下JavaScript代码:
<script type="text/javascript" >
window.open('http://www.google.com.au/', '_self');
</script>
_self 在与原来相同的框架中打开链接的文档。
在上面的命令中,第二个参数的值类似于HTML中标记A(<a></a>
)中目标属性的值,除了以外,还可以使用以下值_self 值:
_blank 在新窗口或标签中打开链接的文档
_parent 在父框架中打开链接的文档
_top 在窗口的整个正文中打开链接的文档
框架名称:在命名框架中打开链接的文档