2013-06-20 53 views
-1

我有一个使用PHP邮件功能的表单,如果邮件发送成功,最后还是有一个死机。如何检查php邮件功能是否成功,然后运行javascript代码?

我可以“抓住”这个死亡事件,然后运行一个JavaScript的情况下,实际上发生?

+0

'die(1);'然后检查响应是否包含1 – Dale

+0

使用'die'这是反模式的一个很好的例子。 Die用于在发生严重错误或发送重定向头之后终止输出 - 并且绝对不表示已发送邮件或将某些内容传递给javascript。这个问题应该是不同的。 @Dale,阅读文档!整数不会被打印。 – ElmoVanKielmo

+0

@ElmoVanKielmo你是对的'死('1')';) – Dale

回答

2

尝试这样

die('<script>alert(1);</script>'); 
+0

那么HTML文件的其余部分呢?你认为输出是HTML(或XHTML),使用'脚本'标签,所以关闭其他标签! – ElmoVanKielmo

0

你可以在模具电话告诉JS,该邮件已发送输出JSON字符串(或任何真的)。

die('{success:true}'); 

我想这是一个AJAX请求,那么你可以在成功回调中解析JSON。

2

你为什么叫死?设置邮件成功发送的变量,并在脚本中对此变量作出反应(if-condition)。然后你可以在脚本中运行javascript代码。

+1

我完全同意(+1)。 '死('')'留下未封闭的'body'和'html'标签。即使我们用'die'关闭它们,我们也不确定是否还有其他东西没有打开(例如,如果我们在代码的不同部分“死掉”),以后再添加一些元素等)。 – Voitcus

+0

如何反应并知道邮件是否已成功发送? –

+0

将函数mail()包装为if条件。 mail()在成功时返回true,否则为false ...如果mail()返回true,则设置一个变量,稍后您可以检查相同的变量以运行JavaScript代码。注意:如果mail()返回true并不意味着receipent得到了电子邮件,因为没有检查mailaddress是否真的存在。它只是表示传出的邮件服务器发送了它。阅读更多“返回值”:http://www.php.net/manual/en/function.mail.php – leuchtdiode

相关问题