2013-01-10 8 views
0

오케이 ... 그래서 ... 내 첫 번째 질문은 나와 함께 참아주십시오.새로 고침시 잘못된 로그인 정보가 표시됩니다. PHP LOGIN SCRIPT

등록, MySQL 데이터베이스 등으로 로그인 스크립트를 만들었습니다. 지금까지 훌륭하게 작동하고 있습니다. 페이지를 새로 고칠 때 아직 정보를 입력하지 않은 경우라도 잘못된 로그인 정보 오류가 발생한다는 사실을 제외하고는 처음 페이지를로드하거나 가짜 사용자로 로그인 한 다음 로그 아웃하면 작동합니다. 그러나 다음은 $_SESSION에 사용자 이름/암호를 확인할지 여부를 저장하고 있기 때문에의 코드

if($_SESSION["logged"]) 
{ 
     print_secure_content(); 
} 
else { 
     if(!$_SESSION["logging"]) 
     { 
     $_SESSION["logging"]=true; 
     echo "Login:"; 
     loginform(); 
     } 
     else if($_SESSION["logging"]) 
      { 
       $number_of_rows=checkpass(); 
       if($number_of_rows==1) 
         {  
         $_SESSION[user]=$_POST[userlogin]; 
         $_SESSION[logged]=true; 
         echo"<h1>you have logged in successfully</h1>"; 
         print_secure_content(); 
         } 
       else{ 
            echo "wrong password or username, please try again"; 
            loginform(); 



         } 
       } 

     } 

답변

1

에게 있습니다.

로그인 양식이 표시되면 $_SESSION['logging']true으로 설정됩니다. 그런 다음 성공적으로 로그인합니다 (여전히 true로 설정되어 있음). 다음 번에 로그인 양식이 표시 될 때 여전히 true으로 설정되어 있으므로 사용자 이름/비밀번호 조합 및 오류를 확인하려고 시도합니다.

$_SESSION['logging']을 사용하여 사용자 이름/비밀번호의 유효성을 검사할지 여부를 결정하는 대신 사용자가 양식을 제출할 때만 표시되는 $_POST 배열에 사용자 이름과 비밀번호 입력란이 있는지 확인해야합니다 .

관련 문제