【问题标题】:How to check if password contains username [duplicate]如何检查密码是否包含用户名[重复]
【发布时间】:2012-06-09 23:07:59
【问题描述】:

我正在尝试添加一个步骤,如果输入的密码包含输入的用户名,那么它会返回错误,即 pass cannot contain username。我说的是“包含”,而不是密码。在那种情况下,我可以简单地做elseif($password == "$user_username") $error .= $lang['46'];}

$user_username = cleanit($_REQUEST['username']);
STemplate::assign('user_username',$user_username);
$password = cleanit($_REQUEST['password']);
STemplate::assign('password',$password);
if($user_username == "")
{
    $error .= $lang['41'];  //Error: Please enter your username
}
elseif(strlen($user_username) < 4) //Your username should have 4 chars 
{
    $error .= $lang['42'];  
}
elseif(!preg_match("/^[a-zA-Z0-9]*$/i",$user_username)) //name only contains letters and numbers
{
    $error .= $lang['43'];
}
elseif(!verify_email_username($user_username)) //username already taken
{
    $error .= $lang['44'];
}
elseif($password == "") //no password entered
{
    $error .= $lang['45'];  
}    

【问题讨论】:

标签: php


【解决方案1】:

最简单的就是stripos:

$username = "Corbin";
$password = "mynameiscorbin";
if (stripos($password, $username) !== false) {
    //password contains username
}

【讨论】:

    【解决方案2】:

    只需将此附加到您的条件:

    elseif(stristr($password, $username) !== false) // password contains username
    {
        $error .= $lang['46'];  
    }
    

    【讨论】:

    • 不知何故您的脚本无法为我工作^_-。我所做的是添加的密码不等于用户名,并且必须包含至少一个数字或特殊字符。 !preg_match("#[0-9\W]+#", $password)
    【解决方案3】:

    我想你正在寻找stripos()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 2012-11-24
      • 2015-02-13
      • 1970-01-01
      相关资源
      最近更新 更多