2012-06-05 5 views
2

이것은 내 코드입니다. 입력 한 암호가 입력 된 사용자 이름을 포함하는 경우 암호가 사용자 이름을 포함 할 수 없다는 오류를 반환하는 한 단계 더 추가하려고합니다. 나는 '포함한다'에 대해서 이야기하고 있으며, 암호는 쓰지 않는다. 그 경우에는 단순히 elseif ($ password == "$ user_username") $ error. = $ lang ['46 '];}비밀 번호에 PHP가 포함되어 있는지 확인하는 방법

또한 내가 당신에게 고맙게 생각합니다. 내 스크립트

$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']; 
    } 


    if($error == "") 
    { 
     $SID = intval($_SESSION['USERID']); 
     $pw = md5($password); 
     $query="UPDATE members SET username='".mysql_real_escape_string($user_username)."', password='".mysql_real_escape_string($pw)."', pwd='".mysql_real_escape_string($password)."' WHERE USERID='".mysql_real_escape_string($SID)."'"; 
     $result=$conn->execute($query); 
     $_SESSION['USERNAME']=$user_username; 
     header("Location:$config[baseurl]/welcome");exit; 
    }  
+0

[양식에 대한 확실한 가이드를 기반으로 웹 사이트 인증 (HTTP : // 유래. com/a/477578/623041). – eggyal

답변

4

그냥 조건이 추가 : 가장 쉬운 것은 stripos 될 것입니다

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

어떻게 든 스크립트가 나를 위해 일하지 못하게되었습니다^_-. 내가 한 일은 사용자 이름과 같지 않은 비밀번호를 추가 한 것으로 적어도 하나 이상의 숫자 또는 특수 문자를 포함해야합니다. ! preg_match ("# [0-9 \ W] + #", $ password) – Asim

3

:

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

감사합니다. corbin 나는 또한 stripos를 시도했습니다. – Asim

관련 문제