此问题已在此处有答案:
How to fix "Headers already sent" error in PHP(16个回答)
3个月前关闭。
这个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();
}
}
}
?>
9条答案
按热度按时间cyvaqqii1#
使用JavaScript。
而不是
使用
它会重定向,即使有东西在您的浏览器上输出。
但是,有一个预防措施是要做的:JavaScript重定向将重定向您的页面,即使页面上有打印内容。
确保它不会跳过任何用PHP编写的逻辑。
f0brbegy2#
用下面的代码替换
header('location: http://www.google.com.au/');
行,在php中重定向,而不使用header函数。如果你想知道为什么我同时使用Meta标记和JavaScript来重定向,那么答案很简单。
如果浏览器中禁用了JavaScript,则Meta标记将重定向页面。
l0oc07j23#
头不工作后,包括,回声。再试一次,不包括,回声。使用OR代替函数头
0dxa2lsx4#
我解决了这个问题:
用途:GoToNow('http://example.com/url-&error=value');
ccrfmcuu5#
如果你想在html代码之后重定向到另一个页面,那么使用
location.href
JavaScript方法。请参考以下示例代码:
e4yzc0pl6#
除了上面的答案,你还可以在文档和主窗口以及iframe中使用以下JavaScript代码:
_self在原来的框架中打开链接的文档。
在上面的命令中,第二个参数的值类似于HTML中标签A(
<a></a>
)中目标属性的值,除了**_self**值外,还可以使用以下值:_blank在新窗口或选项卡中打开链接的文档
_parent在父框架中打开链接的文档
_top在整个窗口中打开链接的文档
framename在命名框架中打开链接文档
4dbbbstv7#
如果你使用JavaScript,你应该使用
exit()
函数来停止重定向函数下面的脚本的每次执行。否则,如果有人在他们的浏览器中关闭了javascript
,下面的语句将被执行。rqcrx0a68#
这是一个使用
PHP
和PHP
的快速脚本,它允许您将重定向脚本存储到变量中,并且可读性很强,提高了可重用性。在稍后的代码中,一旦需要使用
echo
输出,更好的是,我们可以将其添加到一个名为redirect的函数中,并带有一些默认变量。
转到默认
http://localhost:8000/
转到谷歌Map
rjzwgtxy9#
您可以在php表单中使用此短代码,该表单首先检查是否已使用php代码发送头,如果是,则使用JavaScript代码echo重定向,如果头尚未发送,则php重定向到存储在$URL变量中的页面。请在第一行输入您要重定向到的页面的URL:$URL =“your_url.html;变量$URL将在代码的其余部分用于表示您的URL: