2012-09-27 130 views
-2

我正在處理一個非常簡單,非常容易的聯繫表格,當我在一個單獨的頁面上完成它的工作時,它完美地工作,但是當我將它添加到當前網站時,它無法獲取$ _POST我不知道爲什麼。這裏的代碼未定義索引?

$to ="enter email here"; 
     $name = $_POST["name"]; 
     $email = $_POST["email"]; 
     $header = "From " . $name; 
     $message = $_POST["message"]; 
     $content = "From: ". $name ."<br /> Email: " . $email ."<br /> Message: " . $message; 

     if(!filter_var($email, FILTER_VALIDATE_EMAIL)){ 
      echo "illegal email"; 
     } 
     else 
      { 
      if (!empty($name) && !empty($message)){ 
       mail($to, $header, $content); 
       echo"sent <br />"; 
       echo $content; 
      }else 
       { 
       if(empty($email)) 
        { 
         echo "your email is empty"; 
        } 
        elseif(empty($name)) 
        { 
         echo "please enter your name"; 
        } 
        elseif(empty($message)){ 
         echo "can't send empty messages"; 
        } 
       } 
      } 

HTML

<form method="post" action="mail.php"> 
     <table> 
      <tr> 
       <td> 
       Name: 
       </td> 
       <td> 
        <input type="text" name="name" /> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        Email: 
       </td> 
       <td> 
        <input type="text" name="email"/> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        Subject: 
       </td> 
       <td> 
        <input type="text" name="subject"/> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        Message: <br /><br/><br/> 
       </td> 
       <td> 
        <textarea style="resize:vertical;" name="message"></textarea> 
       </td> 
      </tr> 
      <tr> 
       <td> 

       </td> 
       <td> 
        <input type="submit"/> 
       </td> 
      </tr> 
     </table> 
    </form> 

在此先感謝和抱歉,如果它是一個重複

+0

零%...爲什麼要麻煩? –

+0

您的PHP代碼是否在mail.php文件中? – Dan

+2

我想你知道這個表格很容易被垃圾郵件用來發送垃圾郵件嗎?您的代碼似乎對我有效。 @Joe只是爲了幫助他和其他閱讀此文的人,並非一切都是關於點。 –

回答

0

這當然不是$ _POST這是壞了,所以它必須有一些相關的任一服務器或錯誤代碼。

你在網站上有任何其他的PHP你的表格導入?如果是這樣,你需要確保它不會以任何方式影響它。

還有一件事要檢查,據報道PHP更新意外地將上傳限制大小從「8M」改爲「10MB」。掃描您的php.ini文件,並確保它們的上傳限制中沒有任何不需要的「MB」而不是「M」。

最後一個建議,如果你還沒有找到原因之後,這個我可以給,是嘗試使用:

<?php var_dump($_POST); ?> 

應該揭示了什麼是真的存在。

1

檢查PHP實際上是通過添加這樣的頂端執行:

echo "Testing PHP..."; 

如果您沒有看到提交表單後輸出,請檢查您發佈的形式向正確的文件。例如,您可能需要使用:

<form method="post" action="/mail.php"> 

<form method="post" action="/php/mail.php"> 

...根據您的網站結構的代碼。

+0

哦,你的惡魔! :) – Flosculus

+0

哦!我很抱歉,我沒有仔細閱讀你的評論,你提到檢查實際路徑本身......我沒有試圖提出你的意見,我答應答案! – Dan

+1

沒問題哈哈。 – Flosculus