if($sendmail) {
echo "<div class=\"success\" class=\"regdet\">Congratulations $name! You have successfully registered for <span>AADAB 2013</span>! An email has been sent to your email with the details of your form.<br><br>If the page does not automatically redirect you in 5 seconds, click <input type=\"button\" value=\"Here\" onclick=\"window.close()\"> to continue.</div>";
header (refresh: 5, url="form.php");
} else {
echo "<span style=\"color: red; background: rgba(219,219,219,0.7);\">There was an error in submitting your form. Click <a href=\"form.php\">here</a> to try again!</span>";
}
我试图在5秒后将用户重定向到表单(这是当前表单,包含表单和PHP命令)...因为它没有发生,我试图包含一个按钮在表单确认页面上按下后将关闭窗口。
那也没有发生。
正在显示消息,表单正在将电子邮件发送到我的电子邮件帐户,但这一小部分让我烦恼不已!
答案 0 :(得分:1)
您应该将参数作为字符串传递给header()
(实际上您正在发送原始标题字符串)。
所以这样:
header('refresh:5;url=form.php');
至于window.close()
。如果您没有使用Javascript打开窗口并尝试使用窗口处理程序关闭它,您实际上可能会遇到问题。由于安全原因,Javascript不会让您关闭用户看到的任何窗口。从理论上讲,您应该看到一个浏览器警报,告诉您JS想要关闭此窗口(但我没有设法让它在IE 9或FF上工作)。
答案 1 :(得分:0)
“只允许对使用window.open方法的脚本打开的窗口调用此方法。如果脚本没有打开窗口,则JavaScript控制台中会出现以下错误:脚本可能无法关闭没有被脚本打开的窗口。“
当您打开窗口时,应该将其分配给变量。
openedWindow = window.open('moreinfo.htm');
然后当你要关闭它时......
openedWindow.close();
如果您想用JS关闭窗口,那么您可能还需要使用JS重定向...
location.href = 'form.php';
答案 2 :(得分:0)
如果您尚未向浏览器输出任何内容,则只能输出标题。在您的情况下,echo
某事,然后尝试发送header()
。
你也应引用你的论点:
// no output so far....
header ('refresh: 5; url=form.php');
如果查看错误日志,您应该找到:
PHP警告:无法修改标题信息 - 已经由...发送的标题
答案 3 :(得分:-1)