如何检查密码是否包含PHP中单词或特殊字符的用户名

时间:2019-05-28 04:07:03

标签: php

我有用户名和密码,我需要检查密码是否特定于用户名

我的代码是

$username = "paul.gilbert";
$password = "Paul@2019";
if (stripos($password,$username) !== false) {
    echo "password contains username";
}else{
    echo "good password";
}

如何检查我是否具有这样的用户名和密码?

1 个答案:

答案 0 :(得分:1)

<?php
/***************************************
Change the special character with blank.
explode username by blank
$username [0] - First name
$username [1] - Last name

Make it  case insensitive use  strtolower function
*****************************************/

$username = explode(' ', (preg_replace('/[^A-Za-z0-9 -]+/', ' ', 'paul.gilbert')));

$Firstname = strtolower($username[0]);
$lastname = strtolower($username[1]);

$password = strtolower(preg_replace('/[^A-Za-z0-9 -]+/', ' ', 'Paul@2019'));


//check if password contains first name or last name of username 
if (stripos($password,$Firstname) !== false || stripos($password,$lastname) !== false) {
    echo "password contains username";
}else{
    //If not contains make it good password
    echo "good password";
}

?>

解决方案2-如果要3个单词,例如“ pau”或“ aul”。使用preg_match

//check if password contains first name or last name of username 
if(preg_match("/\b{$Firstname}\b/i", $password) || preg_match("/\b{$lastname}\b/i", $password)) {
    echo "password contains username";
}else{
    //If not contains make it good password
    echo "good password";
}