使用for在数组中添加输入错误

时间:2019-05-22 17:54:16

标签: php arrays for-loop if-statement

我在PHP代码中有一个问题。它没有给我任何输出。我的错误在哪里?

if (isset($_POST['regBtn'])) {
    $fname = strip_tags(trim($_POST['fname']));
    $lname = strip_tags(trim($_POST['lname']));
    $email = strip_tags(trim($_POST['email']));
    $password = strip_tags(trim($_POST['password']));
    $errMsg = array();
    for($i=0; $i<=3;$i++) {
    if (strlen($fname) < 0) {
        $errMsg[$i] = "Գրեք Ձեր անունը ամբողջությամբ։";
    } elseif (strlen ($lname) <0) {
        $errMsg[$i] = "Գրեք Ձեր ազգանունը ամբողջությամբ";
    } elseif (strlen($email) < 0) {
        $errMsg[$i] = "Գրեք Ձեր էլ․ հասցեն";
    } elseif (strlen($password) < 6) {
        $errMsg = "Գաղտնաբառը պետք է պարունակի առնվազն 6 նիշ";
    } }
    var_dump ($errMsg); 
 }
else {


}

1 个答案:

答案 0 :(得分:1)

这里有几个问题,假设您有一个name="regBtn"的表单输入,要求才能运行此代码:

  1. strlen不会是< 0,尽管可能是0。如果需要,请使用empty或大于0的数字。
  2. elseif仅在if失败的情况下执行,因此只需使用if
  3. 无需循环,只需使用多个if块并将其动态附加到错误数组[]

if (isset($_POST['regBtn'])) {
    $fname = strip_tags(trim($_POST['fname']));
    $lname = strip_tags(trim($_POST['lname']));
    $email = strip_tags(trim($_POST['email']));
    $password = strip_tags(trim($_POST['password']));
    $errMsg = array();

    if (empty($fname)) { // or use strlen < 2 or < 3 or whatever like $password
        $errMsg[] = "Գրեք Ձեր անունը ամբողջությամբ։";
    }
    if (empty($lname)) {
        $errMsg[] = "Գրեք Ձեր ազգանունը ամբողջությամբ";
    }
    if (empty($email)) {
        $errMsg[] = "Գրեք Ձեր էլ․ հասցեն";
    }
    if (strlen($password) < 6) {
        $errMsg[] = "Գաղտնաբառը պետք է պարունակի առնվազն 6 նիշ";
    }
    var_dump ($errMsg); 
 }

此外,您可能想在trim之后strip_tags,以防留下空格:

$fname = trim(strip_tags($_POST['fname']));