2015-05-11 73 views
1

奇怪的問題 - 我的sendmail.php在桌面和移動設備上工作正常,只有在請求桌面網站(在Chrome應用程序中)時,但是當使用移動網站時,他不工作所有。sendmail.php在手機上無法正常工作

有人可以幫我弄清楚這一點嗎?

這裏是代碼:

<?php 
if(isset($_POST['email'])) { 
    if (!check_email($_POST['email'])) 
    { 
     echo 'Please enter a valid email address<br />'; 
    } 
    else send_email(); 
} 
exit; 

function check_email($emailAddress) { 
    if (filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) { 
     return TRUE; 
    } else { 
     return FALSE; 
    } 
} 
function send_email() { 
    $message = "\nName: " . $_POST['name'] . 
     "\nEmail: " . $_POST['email'] ; 

    $message .= "\nMessage: " . $_POST['comment'] . 
     "\n\nBrowser Info: " . $_SERVER["HTTP_USER_AGENT"] . 
     "\nIP: " . $_SERVER["REMOTE_ADDR"] . 
     "\n\nDate: " . date("Y-m-d h:i:s"); 

    $siteEmail = $_POST['receiver']; 
    $emailTitle = $_POST['subject']; 
    $thankYouMessage = "Thank you for contacting us, we'll get back to you shortly."; 

    if(!mail($siteEmail, $emailTitle, $message, 'From: ' . $_POST['name'] . ' <' . $_POST['email'] . '>')) 
     { 
      echo 'error'; 
     } 
    else 
    { 
     echo 'success'; 
    } 
} 


?> 
+0

這可能是您網站的移動版本上的HTML問題,而不是您的PHP代碼問題。我的猜測是你的移動網站沒有正確設置和/或POST'email',所以isset()檢查失敗。也許你可以在最初的if中添加一個'else'子句來驗證這一點。 –

+0

按鈕或按鈕周圍的代碼('

')。 –

+0

@TomDworzanski - 謝謝!我想你是對的。這看起來像是關於按鈕的問題 - 當嘗試使用移動網站發送表單時(即使是從桌面),表單也不起作用。 **你有任何想法如何解決它? **它可以與jQuery相關嗎? – Harel

回答

0

您必須確保移動形式有以下兩個要素:

  1. 它被使用method="POST"提交。

  2. 您的電子郵件輸入的屬性和值name="email"

我演示了在下面的代碼中設置這些東西的位置。這是不完整的,當然,它只是爲了告訴你兩個必需部件必須在哪裏。

<form ... method="POST"> 
... 
    <input type="text" name="email" ... > 
... 
</form> 

我需要一提的一件事...

話雖這麼說,你在做什麼這裏是極不安全。您允許某人在網頁表單上設置電子郵件地址和兩個地址。聰明的黑客可以輕鬆地編寫一個腳本,將您的服務器變成垃圾郵件或其他惡意活動的開放中繼。至少,您應該刪除$_POST['receiver'],並用硬編碼的電子郵件地址替換,或者至少不是最終用戶在發佈到表單時可以更改的內容。

0

所以我鑽下去,發現移動形式通過了404 現在的問題是,即使這個文件是繳費,電子郵件不會發送此PHP文件指導意見...

'。爲 「\ r \ n」 個; $ headers。= 'From:'。爲 「\ r \ n」 個; $ headers ='MIME-Version:1.0'。 「\ r \ n」; $ headers。='Content-type:text/html; charset = utf-8'。爲 「\ r \ n」 個; $ message。=「姓名:」。 $名稱。 「

」; $ message。=「主題:」 。 $主題。 「

」; $ message。=「電子郵件:」。 $電子郵件。 「
」; $ message。=「消息:」。 $ message_text。 「
」; 郵件($ to,$ subject,$ message,$ headers,「-f [email protected]」); echo 1; } if(isset($ _ POST ['sendmail'])&& $ _POST ['sendmail'] == 1){ send_mail(); }?>
相關問題