2015-05-21 24 views
-1

我被一個客戶要求使用鏈接他們的聯繫表單到谷歌文檔。我有一個一步步顯示我做了什麼的視頻,但是當我提交表單時,有一個重定向到正在處理的頁面,並且沒有響應發送到表單文件。我會後的代碼的代碼:在大小寫爲您分配所有的POST陣列我試過了 - 單頁html與PHP與谷歌formscontact形式

<div class="col-md-9 col-xs-12 forma"> 
 
<!--<form id="form" action="MWSContact.php" method="POST" enctype="text/plain">--> 
 
         <!-- 
 
         <fieldset> 
 
         <input type="text" class="col-md-6 col-xs-12 name" name='name' placeholder='Name *'/> 
 
         <input type="text" class="col-md-6 col-xs-12 Email" name='Email' placeholder='Email *'/> 
 
         <input type="text" class="col-md-12 col-xs-12 Subject" name='Subject' placeholder='Subject'/> 
 
         <textarea type="text" class="col-md-12 col-xs-12 Message" name='Message' placeholder='Message *'></textarea> 
 
         </fieldset> 
 
         <div class="cBtn col-xs-12"> 
 
     <fieldset> 
 
      <input class="send" type="submit" value="Send" /> 
 
      <input class="reset" type="reset" value="Reset" /> 
 
     </fieldset> 
 
         </div> --> 
 
     <!-- </form>--> 
 
       </div>

<? 
 
if (isset($_POST['email'])){ 
 

 
//Here is the email to info 
 
$emial_to = 'email'; 
 
$email_subject = "MWS Contact"; 
 
$email_from = "Client"; 
 
//Error Code 
 
function died ($error){ 
 
echo "We are sorry, but there were error (s) in your submitted form."; 
 
echo "These errors appear below.<br/><br/>"; 
 

 
echo $error. "<br/><br/>"; 
 
echo "Please check your information again.<br/>"; 
 
die(); 
 
} 
 
//Validation 
 
if (!isset($_POST['name']) || 
 
!isset($_POST['email']) || 
 
!isset($_POST['message']) || 
 
!isset($_POST['subject'])){ 
 
died ('We are sorry but there appears to be a probem with your form submitted.'); 
 
} 
 
//values 
 
$name = $_POST['name']; 
 
$email = $_POST['email']; 
 
$message= $_POST['message']; 
 
$subject = $_POST['subject']; 
 
//error messages 
 
$error_message = ""; 
 
$email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 
 

 
if (!preg_match($email_exp, $email)){ 
 
    $error_message .= 'The Email address you entered does not appear to be valid. <br/>'; 
 
} 
 
$string_exp = "/^[A-Za-z.'-]+$/"; 
 
    if (!preg_match($string_exp, $name)){ 
 
     $error_message .= 'The name you endtered does not appear to be valid. <br/>'; 
 
    } 
 
    if (strlen($message) <2){ 
 
     $error_message .= 'The comment you entered does not appear to be valid.<br/>'; 
 
    } 
 
    if (strlen($email_message) >0){ 
 
     died($error_message); 
 
    } 
 
    //Sanitize 
 
    $email_message = "Form Details Below\n\n"; 
 

 
    function clean_string($string){ 
 
     $bad = array("content-type", "bcc:", "to:", "cc:", "href"); 
 
     return str_replace($bad," ", $string); 
 
    } 
 
     $email_message .="Name:" . clean_string($name) . "\n"; 
 
     $email_message .="Email:" . clean_string($email) . "\n"; 
 
     $email_message .="Subject:" . clean_string($subject) . "\n"; 
 
     $email_message .="Message:" . clean_string($message) . "\n"; 
 
"\n"; 
 
    //headers 
 
    $headers = 'From: ' .$email_From . "\r\n". 'Reply-To:' . $email. "\r\n" . 'X-Mailer: PHP/' .phpversion(); 
 
     @mail ($email_to, $email_subject, $email_message, $headers); 
 

 
} 
 
?> 
 
Thank you for contacting us. We will be in contact with you shortly.

google form

+0

'電子郵件'和'電子郵件'是兩個不同的動物,檢查所有的輸入和POST數組。錯誤報告是你的朋友http://php.net/manual/en/function.error-reporting.php - 並刪除'@'符號,這是一個錯誤抑制器。 –

+1

另外,您的表單的代碼已被註釋掉,*爲什麼? –

+0

因爲我從這個代碼中測試了Google表單方法,但是使用電子郵件或帶有gmail的電子郵件會有所不同嗎? –

回答

3

外觀和有條件的陳述:

  • $_POST['name']
  • $_POST['email']
  • $_POST['message']
  • $_POST['subject']

然後在您的形式

<input type="text" class="col-md-6 col-xs-12 name" name='name' placeholder='Name *'/> 
<input type="text" class="col-md-6 col-xs-12 Email" name='Email' placeholder='Email *'/> 
<input type="text" class="col-md-12 col-xs-12 Subject" name='Subject' placeholder='Subject'/> 
<textarea type="text" class="col-md-12 col-xs-12 Message" name='Message' placeholder='Message *'></textarea> 

大小寫必須匹配。你有email$_POST['email']然後name='Email'爲您的輸入。

if (isset($_POST['email'])){...}條件語句內部沒有任何內容會因此而觸發,包括所有其他不會填充的POST數組。

  • 所有其他人都一樣。 POST數組/變量區分大小寫。

因此,將它們全部更改爲匹配name='email',併爲其他人做其餘。

  • 此外,刪除從表單標籤enctype="text/plain",這將使你的表格也失敗;
    這是非常重要的
  • 記得從您的代碼中刪除<!---->。這些是HTML註釋,屏幕上不會顯示任何內容,也不會執行。

  • 確保短打開標籤已啓用。否則,您需要將<?更改爲<?php

  • 刪除@@mail,這是一個錯誤抑制器。同時具有它使


錯誤報告會已經表示「未定義指數電子郵件......」等。

error reporting添加到您的文件的頂部,這將有助於發現錯誤。

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// rest of your code 

旁註:錯誤報告只應在分期完成,並且從不生產。


腳註:

它似乎並不像你與$subject做任何事情,並沒有什麼問候分配$email_to到它正在通過電子郵件發送給。你將需要修改你的代碼,它應該是什麼。

  • $email_to = "[email protected]";需要在您的代碼中添加,用您的電子郵件地址替換它。

編輯:

你有$emial_to = 'email';這是一個錯字。見上面的代碼。

$email_From$email_from = "Client";更多的錯別字。

您應該使用$email代替,並從$email = $_POST['email'];

  • mail()需要一個From:是電子郵件,不是一個名字。

$headers = 'From: ' .$email_From < =應該是$email

...編輯似乎是無盡的。

請檢查您的整個代碼,確保所有內容都匹配,沒有錯別字,字母大小寫問題。等等

  • 我相信我已經給了你足夠多的開始。
+0

爲了這篇文章的目的,我拿出了我的電子郵件,以確保沒有不必要的電子郵件,以確保測試這不是中斷 –

+0

@AnonyCook我已經完成了我所能完成的所有代碼。有很多語法錯誤,拼寫錯誤等,我做了很多修改。你需要檢查你的整個代碼和我的答案,以確保一切都匹配。我盡力而爲,祝你好運。 –

+0

是的,以澄清這是我從報告btw得到的錯誤注意:未定義的變量:Hosting \ 12066284 \ html \ mernwebservice \ MWScontact.php在線46 注意:未定義的變量:在Hosting \ 12066284 \ html中的email_From \ mernwebservice \ MWScontact.php在線62 感謝您與我們聯繫。我們會盡快與您聯繫。 –