未定义的索引?

时间:2012-09-27 00:18:32

标签: php post indexing

我正在开发一个非常简单,非常简单的联系表单,当我在一个单独的页面上完成它时它工作得很好,但是当我将它添加到当前网站时它无法获得$ _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>

提前感谢,如果重复,请抱歉

2 个答案:

答案 0 :(得分:1)

通过在顶部添加类似的内容来检查PHP是否实际执行:

echo "Testing PHP...";

如果在提交表单后没有看到该输出,请检查您是否将表单发布到正确的文件中。例如,您可能需要使用:

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

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

...代码取决于您的网站结构。

答案 1 :(得分:0)

肯定不是$ _POST坏了,所以它必须是服务器相关的或代码中的错误。

您在导入表单的网站上是否有其他PHP?如果是这样,你需要确保它不会以任何方式影响它。

还有一件事需要检查,据报道,PHP更新意外地将上传限制大小从“8M”更改为“10MB”。扫描您的php.ini文件并确保它们在您的上传限制中不是任何不需要的“MB”而不是“M”。

如果您在此之后仍然没有找到原因,我可以给出的最后一个建议是尝试使用:

<?php var_dump($_POST); ?> 

应该揭示真正存在的东西。