gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 12:34:56 25 4
gpt4 key购买 nike

所以我正在编写一个注册脚本,但我还没有弄清楚如何实现在表单输入无效时阻止数据提交。

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

    <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) 上实现此检查?

提前致谢!我希望我在这里所做的一切都是正确的..

最佳答案

<?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 = "";
}

}
?>

关于php - 如果验证没有失败则提交数据(PHP、MYSQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26926232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com