2011-05-06 123 views
1

我目前正在写jQuery的ajax形式。 该表格是通过PHP脚本处理的,然后通过PHPMailer lite类发送信息。 (http://phpmailer.worxware.com/index.php)服务器回应警告/错误,使json的预期响应无效

这是PHP代码:

if ($mail->Send()) 
     echo '{"message":"Mensaje enviado con éxito","status":"ok"}'; 
    else 
     echo '{"message":"Ocurió un error al envíar el mensaje, intentelo más tarde.","status":"fail"}'; 

当用户提交电子邮件是不是一个有效的,导致我发现了这个问题以下错误:

Invalid address: E-mail:Invalid address: E-mail:Could not execute: /usr/sbin/sendmail

我应该测试的电子邮件。好。但问题是前面的错误信息“阻碍了”并破坏了响应。所以我可以解决电子邮件错误,但任何其他警告/错误都会破坏响应。

A '损坏' 响应例如:

Invalid address: E-mail:Invalid address: E-mail:Could not execute: /usr/sbin/sendmail {"message":"Ocurió un error al envíar el mensaje, intentelo más tarde.","status":"fail"}

(初线不应该存在)

而这是JavaScript(jquery的)部分:

 $.ajax 
    ({ 
     type: "POST", 
     url: "contact.php", 
     data: $(this).serialize(), 
     success: function(data) 
     { 
      if(data.status == 'fail') 
      { 
       do something with data.message; 
      } 
      else if(data.status == 'ok') 
      { 
       do something else with data.message; 
      } 
     }, 
     dataType: 'json' 
    }); 

任何的帮助这个? :)谢谢

回答

0

它是一个长镜头,但你试过

@ if ($mail->Send()) 

的@在给定的代码行抑制PHP错误。

+0

那么,只有使用这个作为最后的手段...隐藏问题并不意味着他们解决了。 – kapa 2011-05-06 12:19:08

+0

现在好了,如果他想要正确地做,他必须查看Send()函数。这很可能在未配置smtp设置的测试服务器上运行,并且可以正常运行。并非所有事情都是企业级应用程序...... – 2011-05-06 12:57:23

+0

嗯,是的,并非所有事情都是企业级应用程序:)。然后谁在乎编码标准和逻辑:)。 – kapa 2011-05-06 13:02:33

相关问题