2011-01-20 3 views
0

이것은 로그인을위한 코드입니다. 내가 처음 로그인 할 때 session.but에 공백 값을 전달하면 다시 로그인 페이지로 돌아갈 때 & 로그인 할 때 성공적으로 로그인합니다. 나는이 코드에 무슨 문제가 있는지 이해하지 못했습니까 ?? PLZ 도와주세요. 설정 파일에PHP의 로그인 코드에 도움이 필요합니까?

session_unset(); 
    session_start(); 
    Global $i; 
    $root = $_SERVER['DOCUMENT_ROOT']; 
    include($root."/signinConfig.php"); 
    function redirect($redirect=null) 
    { 
    header("Location : $redirect"); 
    } 
      if (isset($_POST['submit'])) 
      { 
      $check = mysql_query("SELECT * FROM user_reg WHERE `username` = '".$_POST['username']."'")or die("Dont Dare To Hack"); 
      $check2 = mysql_numrows($check); 
       if ($check2 == 0) 
       { 
    die('That user does not exist in our database. <a href="../Signup/registration.php" style="text-decoration: none;">Click Here To Register</a>');    
       } 
       else 
       { 
        $i=0; 
        $password = mysql_result($check,$i,"password"); 
        $_POST['pass'] = stripslashes($_POST['pass']); 
        $pass = md5($_POST['pass']); 
      if ($pass == $password) 
     { 
      $_SESSION['username']= mysql_result($check,$i,"username"); 
      mysql_close(); 
      redirect("/User_CP/user_cp.php"); 
      } 
     else 
     { 
     die('Incorrect password, please try again.'); 
     } 
       } 
      }//after this html code take place 

i는 데이터베이스 연결 코드 & 세션이 코드를 만료 저장합니다. 여기 당신의 redirect 기능 문제는 당신이 출구를 제공 해달라고하면, 코드가 redirect 함수 뒤에 계속 실행하는 것입니다 header

function redirect($redirect=null) 
    { 
    header("Location : $redirect"); 
    exit(); 
    } 

exit(); 누락, 우선

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1000)) { // last request was more than 30 minates ago 
    session_destroy(); // destroy session data in storage 
    session_unset();  // unset $_SESSION variable for the runtime 
    } 
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp 
+0

mysql_real_escape_string (..)을 사용하여 쿼리를 실행하기 전에 입력을 이스케이프해야 할 수도 있습니다. – SuperSaiyan

+0

@Thrustmaster 지금도 로그인 할 수 없습니다. –

+3

질문 제목에 대문자 ** 긴급 **이 누락되었습니다. ... –

답변

1

OK입니다.

예를 들어, 당신은 여기

redirect("/User_CP/user_cp.php"); 

을 그리고 페이지를 리디렉션하지만, PHP는 여전히 실행됩니다 당신은 그것을 실행할 것이다 라인과 세션 후 session_destroy() 또는 session_unset() 기능이있는 경우 만료 될 것입니다.

세션이 파괴되지 않아도 충돌이 발생할 수 있습니다.

시도해주세요. exit() 알려주세요.

+0

여전히 동일한 문제가 발생합니다. –

관련 문제