我有一个练习来制作一个,并用php验证。 为什么它没有发出错误信息?
如果我只检查名称的长度,那么它的工作原理。如果我只检查关于正确角色的名称,那么它也有效。错误检查错误了什么?
<?php
//Values set?
if(isset($_POST['name'])){
$errors = [];
//Error check
if (!preg_match("/^[a-zA-Z ]*$/",$_POST['name']) && strlen($_POST['name']) < 2) {
$errors['name'] = 'Please put in your name.';
}
}
?>
<p>Input your name</p>
<?php
//Show Errors
if (isset($errors['name'])){
echo '<p>' . $errors['name'] . '</p>';
}
?>
<input type="Text" name="name">
<input type="submit" name="submit" value="send">
答案 0 :(得分:1)
也许您应该使用OR(||
)代替AND(&&
):
if (!preg_match("/^[a-zA-Z ]*$/",$_POST['name']) || strlen($_POST['name']) < 2)
答案 1 :(得分:1)
使用此:
Closure
与||操作员代替&amp;&amp;。
答案 2 :(得分:1)
您在输入字段中输入了什么内容?电子邮件在哪里?
如果您想制作电子邮件输入字段,可以执行以下操作:
tweet1
最重要的是,目前,如果你输入的电子邮件至少有两个字符长,那么If语句将会通过,因为你正在使用AND。你应该像这样使用OR:
<input type="email" name="name">
正如通知:如果输入字符串是电子邮件,您可以轻松使用以下PHP函数进行验证:
if (!preg_match("/^[a-zA-Z ]*$/",$_POST['name']) || strlen($_POST['name']) < 2)