好的我在PHP中相当新,我正在尝试建立联系表单。有些字段我需要具有某些字符。
if (!empty($_POST['title'])) {
$title = $_POST['title'];
}
elseif (strlen($title)>=1||strlen($title)<6)||strlen($title)>50 {
$error .= "Length of your Subject must be more than 6 characters. <br />";
}
else {
$error .= "Please enter the Subject. <br />";
}
$ error存储填写表单时出现的所有错误。最后,表单检查,如果没有找到错误,则成功发送消息。
我想要什么? 如果字符串长度小于3但大于或等于1,我想显示elseif语句中声明的错误。如果长度大于50个字符,也应显示错误。
如果该字段为空,则它应显示else语句中提供的最后一个错误。
发生了什么事? 每当我将字段保持为空时,它会显示第一个错误而不是第二个错误。如果我在字段中只输入1个字符,则不会显示错误。
我正在装袋,我做了很多试验和错误,但似乎没有任何效果。 如果有人能够前进,这将是一个巨大的帮助。这是我在PHP中的第一个项目,因为我的一些读者想要它并且我还没有完全学习这门语言。
答案 0 :(得分:2)
if (!empty($_POST['title']))
{
$title = $_POST['title'];
if (strlen($title)>=1 && strlen($title)<6)||strlen($title)>50)
{
$error .= "Length of your Subject must be more than 6 characters. <br />";
}
}
else
{
$error .= "Please enter the Subject. <br />";
}
答案 1 :(得分:1)
您的条件(strlen($title)>=1||strlen($title)<6)
始终为真,因为标题的长度为&gt; = 1或&lt; 6(或两者)。您可能希望使用&&
代替||
。
答案 2 :(得分:0)
如果字符串为空,它只会进入else。
答案 3 :(得分:0)
如果长度介于1到6个字符且超过50个字符,为什么会显示相同的错误?你的if语句也是错误的。如果它是空的,您将转到使用elseif
的{{1}},但尚未定义任何$title
变量。
$title
答案 4 :(得分:0)
就像Dan Berindei所说的那样,你使用的是或者当你应该使用和检查$ title是否为空时。实际上你不需要检查它至少是一个字符,因为你已经确认它不是一个空字符串。
这里有点清洁:
if (!empty($_POST['title'])) {
$title = $_POST['title'];
if (strlen($title)<6)||strlen($title)>50) {
$error .= "Length of your Subject must be between than 6 and 50 characters. <br />";
}
}else {
$error .= "Please enter the Subject. <br />";
}