2013-06-20 52 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

相關問題