我有用户名和密码,我需要检查密码是否特定于用户名
我的代码是
$username = "paul.gilbert";
$password = "Paul@2019";
if (stripos($password,$username) !== false) {
echo "password contains username";
}else{
echo "good password";
}
如何检查我是否具有这样的用户名和密码?
答案 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";
}