2010-07-15 70 views
0

我有一个典型的mail.php脚本,它使用mail()函数。用户输入到一个典型的HTML表单的信息后,我有mail()函数发送电子邮件到期望的电子邮件[用电子邮件($ email_of_client)等等等等]在PHP中重定向

我的问题是这样的:

后,电子邮件发送,我希望用户被重定向到一个页面三江源(下WordPress的运行,因此它不具有的.html或扩展名为.php)

我试过如下:

<meta http-equiv="refresh" content="0;URL=http://my-site-here.com/thankyou"> 

这确实该作业,但显示一个毫秒的空白屏幕。我想知道是否可以在用户输入数据并点击发送之后立即执行重定向。

非常感谢,

阿米特

+2

你知道元刷新被弃用,对不对? W3C:“用户不应该使用这种标记重定向用户,因为它是非标准的,它妨碍了用户,并且可能破坏浏览器访问过的页面的历史。” – animuson 2010-07-15 07:15:45

+0

不知道。谢谢! – Amit 2010-07-15 08:39:05

回答

4

而不是使用元刷新的,使用

header('Location: http://my-site-here.com/thankyou'); 
exit(); 

不要忘了退出()如果你不想执行该行

这工作后有什么,如果你没有发任何东西到浏览器。如果你有送东西到浏览器的解决方案是:

ob_start(); 
echo "sending something to the browser"; 
header('Location: http://my-site-here.com/thankyou'); 
ob_end_clean(); 
exit(); 
2

你可以使用HTTP标头重定向。使用像这样的东西:

<?php 
    header('Location: http://www.example.com/'); 
?> 

请注意,您不能有任何输出之前调用标题(除非你有输出缓冲)。

请参阅http://php.net/manual/en/function.header.php了解有关该功能的详细信息以及有关http标头的一般信息。

+0

howcome当我把我的标题('位置:http://mysite.com'); ()后;函数不重定向? – Amit 2010-07-17 06:22:14

0

要添加到其他的答案,它总是发送状态代码太是个好主意;

header('HTTP/1.1 302 Found'); 
header('Location: http://example.com');