2011-05-06 48 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

相關問題