2015-01-19 2 views
1

로그인 및 리디렉션에 작은 문제가 있습니다. 나는 로그인 한 후 user.php라는 파일로 사용자를 보내는 소셜 네트워크를 구축 중입니다.MySQLi 리디렉션 문제

user.php에서 사용자가 존재하지 않거나 활성화되지 않았다는 메시지가 나타나지 않습니다. 여기 내 login.php

if(isset($_POST["e"])){ 
    // GATHER THE POSTED DATA INTO LOCAL VARIABLES AND SANITIZE 
    $e = mysqli_real_escape_string($db_conx, $_POST['e']); 
    $p = $_POST['p']; 
    // Form data error handling 
    if ($e == "" && $p == ""){ 
     echo "Login Failed"; 
     exit(); 
    } else { 
     $sql = "SELECT id, username, password FROM users WHERE email='$e' AND activated='1' LIMIT 1"; 
     $query = mysqli_query($db_conx, $sql); 
     $row = mysqli_fetch_array($query, MYSQLI_ASSOC); 
      $db_id = $row["id"]; 
      $db_username = $row["username"]; 
      $db_pass_str = $row["password"]; 
      if (password_verify('$p', $db_pass_str)){ 

그때 가서 해당 사용자의 $ _SESSION과 쿠키를 설정에서 코드 예제이다. 그 밖의 경우 로그인 실패를 표시하고 스크립트를 종료합니다.

로그인 후 user.php로 리디렉션해야하지만 해당 파일에서이 파일을 실행합니다.

$sql = "SELECT * FROM users WHERE username='$u' AND activated='1' LIMIT 1"; 
$user_query = mysqli_query($db_conx, $sql); 
// Now make sure that user exists in the table 
$numrows = mysqli_num_rows($user_query); 
if($numrows < 1){ 
    echo "That user does not exist or is not yet activated, press back"; 
    exit(); 
} 

두 파일 모두에 error_reporting이 설정되었지만 문제가 발생하지 않았습니다! 멋진 아이디어가 있다면! 많은 감사합니다! - 필립

당신의 mysqli_query 추가 오류 잡기에
+3

if (password_verify ('$ p', $ db_pass_str)) {'이 함수가'$ p'를 문자열로 원하고 있는지 의심 스럽습니다. 아마도 따옴표를 제거하고 싶습니까? –

+1

'$ u' 변수는'user.php'에 초기화되어 있습니다 – Steve

+0

@ royal-bg 그게 고맙습니다! 모두 지금 정렬! –

답변

1

: 디버깅을위한

$user_query = mysqli_query($db_conx, $sql) or die(mysqli_error($db_conx)); 

.

2 부 :

당신은 당신이 $u를 설립 여기에 확실하다 :

$sql = "SELECT * FROM users WHERE username='$u' AND activated='1' LIMIT 1"; 

다시, 너무 $user_query SQL 줄에 mysqli_error 캐치를 추가합니다.

+0

Martin 감사합니다. 그것 모두는 지금 친구를 분류했다! –