2012-09-27 39 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