PHP中的简单验证器无法正常工作

时间:2014-01-14 17:02:14

标签: php validation

我用PHP创建了一个小形式验证器并且遇到了一些问题。 我的观看文件在这里:

<form action="" method="post">
<?php if( isset($status) ) : ?>
    <p class="notice"><?php echo $status; ?> </p>
    <?php endif; ?>

        <ul>
            <li>
                <label for="name">Your Name : </label>
                <input type="text" name="name">
            </li>

            <li>
                <label for="email">Your Email : </label>
                <input type="text" name="email">
            </li>

            <li>
                <input type="submit" value="Sign Up">
            </li>
        </ul>



    </form>

这是我的小控制器:

<?php
require 'index.tmpl.php';

if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $name  = trim($_POST['name']);
    $email = trim($_POST['email']);

    if (empty($name) || empty($email)) {
        $status = "Please provide a name and a valid email address";
    }

    echo $name;

}

?>

现在发生的事情是,当我打开页面并将表单字段留空并提交时,它只是重新加载,不会回显任何内容。

4 个答案:

答案 0 :(得分:1)

<form action=""指向将提交表单的位置。如果为空白,则将表单提交回自身。

<form action="yourLittleController.php" method="POST">

使用更多信息进行编辑:

在php中,帖子不是POST。示例:https://eval.in/89002

确保你有

method="POST">

而不是

method="POST">

答案 1 :(得分:1)

你想要回复$ status,而不是$ name。

答案 2 :(得分:1)

如何将require行移至if以下?

<?php

if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $name  = trim($_POST['name']);
    $email = trim($_POST['email']);

    if (empty($name) || empty($email)) {
        $status = "Please provide a name and a valid email address";
    }

    echo $name;
}

require 'index.tmpl.php';

?>

答案 3 :(得分:0)

你应该在你的视图文件的表单的action属性中提到你的第二个文件名,比如action =“controller.php”