否则如果在PDO脚本中不起作用

时间:2016-02-15 20:04:30

标签: php

如果输入的字符数小于6,我想阻止POST使用此代码:

<?php
    if(isset($_POST['button']))
    {
    $id = $_SESSION['user_session'];
    $u_password = $_POST['password'];

    if($crud->updatePassword($id,$u_password))
    {
        $msg = $msgsucces;
        }
    else if($u_password < 6) {
    $msg = "<div class='alert alert-warning'><strong>Failed!!</strong> Minimum length 6 character</div>"; 
    return false;
    }
        else
        {
        $msg = $msgfailled;
        }
}
    echo $msg ;
?>

但显然它没有用。有什么问题?

2 个答案:

答案 0 :(得分:2)

您可以使用以下条件:

$msg = "";
if(strlen($u_password) < 6) { 
    $msg = "<div class='alert alert-warning'><strong>Failed!!</strong> Minimum length 6 character</div>"; 
} 
else{
    if($crud->updatePassword($id,$u_password)) 
    { 
        $msg = "success message"; 
    } 
    else { 
        $msg = "failure message"; 
    }
}
echo $msg; 

要检查输入的长度,您可以使用strlen()功能。

旁注:

请注意,我已从ist条件中删除return false。

还建议您始终在文件中添加error_reporting()这有助于您节省时间。 (仅适用于不适合生产的当地环境)。

答案 1 :(得分:1)

  1. $u_password <6你没有真正检查长度。
  2. 您需要使用strlen函数来获取长度并与6进行比较,因此我们使用strlen函数
  3. 经验法则是你在撰写之前应该有错误的案例。
  4. 如果$crud->updatePassword($id,$u_password)失败,则执行最后的其他操作,即错误。

           if(strlen($u_password) < 6) 
           {
                $msg = "<div class='alert alert-warning'><strong>Failed!!</strong> Minimum length 6 character</div>"; 
                return false;
           }
          else if($crud->updatePassword($id,$u_password))
          {
              $msg = $msgsucces;
           }
         else {
              $msg =$msgfailled;
            }
      }
    echo $msg ;
    ?>