douwei1944 2019-05-22 17:54
浏览 241
已采纳

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

I have one problem in PHP code. It did not give me whatever output. Where my mistake?

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条回答 默认 最新

  • dongze8698 2019-05-22 18:09
    关注

    Several problems here, assuming that you have a form input with name="regBtn" which is required for this code to run:

    1. strlen will not be < 0 though it may be 0. Use empty or a number greater than 0 if needed.
    2. elseif will only execute if the if fails so just use if.
    3. No need to loop, just use multiple if blocks and dynamically append to the error array [].

    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); 
     }
    

    Also, you probably want to trim after strip_tags in case it leaves space(s):

    $fname = trim(strip_tags($_POST['fname']));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?