如果条目不正确,则阻止进入确认页面

时间:2018-02-20 20:54:58

标签: php

我这样做是为了学习,从这里和那里的例子中得到它,并遵循在线教程。到目前为止我无法做到的是阻止它进入confirmation.php页面,如果其中一个条目为空,有号码(姓名和姓氏)或电子邮件地址无效。

如果我使用<?php // define variables and set to empty values $nameErr = $lastNameErr = $emailErr = ""; $name = $lastName = $email = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])||(ctype_space($_POST["name"]))) { $nameErr = "Prénom Requis"; } else { $name = test_input($_POST["name"]); // check if name only contains letters and whitespace if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "Lettre seulement"; } } if (empty($_POST["lastName"])||(ctype_space($_POST["lastName"]))) { $lastNameErr = "Nom Requis"; } else { $lastName = test_input($_POST["lastName"]); // check if name only contains letters and whitespace if (!preg_match("/^[a-zA-Z ]*$/",$lastName)) { $lastNameErr = "Lettre seulement"; } } if (empty($_POST["email"])||(ctype_space($_POST["email"]))) { $emailErr = "Adresse courriel requise"; } else { $email = test_input($_POST["email"]); // check if e-mail address is well-formed if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Adresse courriel non valide"; } } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <h2>Inscription du participant</h2> <p><span class="error">* Champ requis.</span></p> <form method="post" "confirmation.php"> Pr&eacute;nom: <input type="text" name="name" value="<?php echo $name;?>"> <span class="error">* <?php echo $nameErr;?></span> <br><br> Nom: <input type="text" name="lastName" value="<?php echo $lastName;?>"> <span class="error">* <?php echo $lastNameErr;?></span> <br><br> Courriel: <input type="text" name="email" value="<?php echo $email;?>"> <span class="error">* <?php echo $emailErr;?></span> <br><br> <input type="submit" name="submit" value="Submit"> </form> </body> </html> ,我会在字段中看到thre是错误,但是当action设置为confirmation.php时,即使出现错误,它也会与输入的数据一起使用。

只是为了我的下一步的信息,confirm.php将是一个页面,显示用提交按钮(到数据库)输入的信息或更新按钮,如果用户犯了错误,所以他可以在发送到db之前修复它

就是你知道,我刚刚开始用PHP支付,所以,如果你的答案不是通用的,我会很感激:-)

谢谢

 options = new OpenIdConnectAuthenticationOptions
        {
            Notifications = new OpenIdConnectAuthenticationNotifications()
            {
                AuthenticationFailed = context =>
                {
                    context.HandleResponse();

                    if (context.ProtocolMessage.Error == "access_denied" && context.ProtocolMessage.ErrorDescription.StartsWith("AADB2C90118"))
                    {
                        context.Response.Redirect("/Account/ResetPassword");
                    }

2 个答案:

答案 0 :(得分:1)

只需在输入字段html元素中添加“required”属性,即可轻松实现所需目标。

看看这里:https://www.w3schools.com/tags/att_input_required.asp

通过添加“required”,浏览器本身将阻止发送表单。

此外,对于“电子邮件”输入,请尝试将其类型更改为电子邮件(type="email",这也将为电子邮件地址添加默认浏览器验证。 在这里查看表单输入字段中的更多默认验证:https://www.w3schools.com/htmL/html_form_input_types.asp

答案 1 :(得分:0)

function sumDigits(num) { if (num == 0) { return 0; } else { var last = num % 10; var rest = Math.floor(num / 10); return last + sumDigits(rest); } } console.log(sumDigits(1234));内缺少action=。它只是说<form>