从php定义

问题描述:

我有sendmail.php,很好用。但是,当我尝试将邮件发送给两个电子邮件地址并且其中一个来自可变邮件的邮件未发送时。当我去的时候:从php定义

define("WEBMASTER_EMAIL", "[email protected], [email protected]"); 

工作正常,打赌当我从变量中尝试我得到错误,邮件没有发送。

$Mail = "[email protected]"; 
if (empty($Mail)){ 
    define("WEBMASTER_EMAIL", "[email protected]"); 
} else { 
    define("WEBMASTER_EMAIL", "[email protected], $Mail"); 
} 

任何想法?

这里是发送功能

$mail = mail(WEBMASTER_EMAIL, $subject, $mail_salji, $headers); 
+2

''我得到错误'' - 什么。是。的。错误。 – David 2014-09-21 20:56:22

+0

define函数的第三个参数假设为一个布尔值 - 一个字符串。 – 2014-09-21 20:57:37

+2

@IdanMagled这不是3个参数,它是2.第二个只有一个逗号... – 2014-09-21 20:59:13

Array ([type] => 8192 [message] => Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 

好的,在Google上搜索错误后,我发现我的托管服务提供商打开了魔术引号。所以我只能发送到与我的网站相同的域的电子邮件地址。所以我必须联系我的托管服务提供商才能关闭它们。

首先,我想这一定是因为你不能在一个恒定的定义中使用的变量。但是,当我测试此代码:

define("WEBMASTER_EMAIL1", "[email protected], [email protected]"); 

echo WEBMASTER_EMAIL1; 

$mail = '[email protected]'; 
define("WEBMASTER_EMAIL2", "[email protected], $mail"); 

echo '<br>'; 
echo WEBMASTER_EMAIL2; 

我得到了这样的结果:

[email protected], [email protected] 
[email protected], [email protected] 

所以你的问题是其他地方。

Ajax可以测试。只需找出ajax调用的内容,然后在浏览器中调用ajax页面即可。不要忘记在你的ajax页面中打开错误报告。

+0

$ WebmasterEmail = [email protected];会更好? – 2014-09-21 21:09:50

+0

数组([type] => 8192 [message] =>指令'magic_quotes_gpc'在PHP 5.3中已弃用 – 2014-09-21 21:41:51

+0

这可能是您从ajax页面获得的错误吗?也许?如果是这样的话,请检查:http:// php.net/manual/en/info.configuration.php#ini.magic-quotes-gpc – 2014-09-21 21:57:51