如果验证没有失败,则提交数据(PHP,MYSQL)

时间:2014-11-14 08:58:14

标签: php mysql forms submit registration

所以我正在编写注册脚本,如果表单输入无效,我还没想到如何防止提交数据。

我有一个名称字段,电子邮件字段和密码字段。这三个都有自己的验证。代码如下所示:

    <form action="config.php" method="post">
    Benutzername:<br>
    <input type="Text" autofocus name="username" value="<?php if(!empty($_POST["username"])) echo $name; ?>">
    <span class="req"><?php echo $nameErr;?></span><br><br>
    Email:<br>
    <input type="text" name="email" value="<?php if(!empty($_POST["email"])) echo $_POST['email']; ?>">
    <span class="req"><?php echo $emailErr;?></span><br><br>
    Passwort:<br>
    <input type="password" name="password" value="">
    <span class="req"><?php echo $passErr;?></span><br><br>
    <input type="Submit" name="send" value="Absenden">
</form>

验证发生在上面:

    if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["username"])) {
        $nameErr = "Dieses Feld darf nicht leer bleiben.";
        $name = "";
    } else {
        $nameCheck = false;
        $nameErr = "";
    }

    if (empty($_POST["email"]) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
            $emailErr = "Bitte eine gültige Email-Adresse angeben.";
        $email = "";
    } else {
        $emailCheck = false;
        $email = $_POST['email'];
        $emailErr = "";

    }

    if (empty($_POST["password"])) {
        $passErr = "Bitte geben Sie ein Passwort an.";
        if(!preg_match('~^(?=.*\d.*\d)[0-9A-Za-z!@#$%*]{6,}$~', $_POST['password'])) {
            $passErr = "Das Passwort muss mindestens zwei Ziffern enthalten und aus 6 Zeichen bestehen.";
        }
    } else {
        $passwordCheck = false;
        $password = $_POST['password'];
        $passErr = "";
    }

}

if($emailCheck != true && $passwordCheck != true && $nameCheck != true) {
    header('Location: index.php');
}

因此,如果一切都正确完成,表单应该重定向到config.php。

但是使用这段代码,我可以将所有标签留空,无论如何都要提交......

如果电子邮件或用户已经注册,我也会检查在数据库中查找的config.php。如何在表单页面(index.php)上实现此检查?

提前致谢!我希望我在这里做的一切......

2 个答案:

答案 0 :(得分:1)

<?php 


 if (isset($_POST['send'])) {

        if (empty($_POST["username"])) {
            $nameErr = "Dieses Feld darf nicht leer bleiben.";
            $name = "";
        } else {
            $nameCheck = false;
            $username =$_POST['username'];
            $nameErr = "";
        }

        if (empty($_POST["email"]) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
                $emailErr = "Bitte eine gültige Email-Adresse angeben.";
            $email = "";
        } else {
            $emailCheck = false;
            $email = $_POST['email'];
            $emailErr = "";

        }

        if (empty($_POST["password"])) {
            $passErr = "Bitte geben Sie ein Passwort an.";
            if(!preg_match('~^(?=.*\d.*\d)[0-9A-Za-z!@#$%*]{6,}$~', $_POST['password'])) {
                $passErr = "Das Passwort muss mindestens zwei Ziffern enthalten und aus 6 Zeichen bestehen.";
            }
        } else {
            $passwordCheck = false;
            $password = $_POST['password'];
            $passErr = "";
        }

}
?>

答案 1 :(得分:0)

    $emailCheck = true;
    $passwordCheck = true;
    $nameCheck = true;

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    if (empty($_POST["username"])) {
        $nameErr = "Dieses Feld darf nicht leer bleiben.";
        $name = "";
    } else {
        $nameCheck = false;
        $nameErr = "";
    }

    if (empty($_POST["email"]) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        $emailErr = "Bitte eine gültige Email-Adresse angeben.";
        $email = "";
    } else {
        $emailCheck = false;
        $email = $_POST['email'];
        $emailErr = "";

    }

    if (empty($_POST["password"])) {
        $passErr = "Bitte geben Sie ein Passwort an.";
        if(!preg_match('~^(?=.*\d.*\d)[0-9A-Za-z!@#$%*]{6,}$~', $_POST['password'])) {
            $passErr = "Das Passwort muss mindestens zwei Ziffern enthalten und aus 6 Zeichen bestehen.";
        }
    } else {
        $passwordCheck = false;
        $password = $_POST['password'];
        $passErr = "";
   }

}

if($emailCheck != true && $passwordCheck != true && $nameCheck != true) {
    header('Location: index.php');
}
相关问题