2013-08-23 2 views
-1

PDO를 사용하여 로그인 시스템에 문제가 있습니다. 올바른 암호로 로그인 할 때, 그것은 단지 당신이로그인 시스템 오류 - PDO

<?php 
include('./includes/connect.php'); 

$submit = $_POST['submit']; 
$email = sanitize($_POST['email']); 
$password = nCrypt(sanitize($_POST['password'])); 

if(isset($submit)) { 
    if(isset($email) && isset($password)) { 
     $query = $pdo->prepare("SELECT password FROM users WHERE email = ?"); 
     $query->bindValue(1, $email); 
     $query->execute(); 

     $r = $query->fetch(); 
     $pass2 = $r['password']; 
     $first = $r['first']; 
     $last = $r['lastname']; 
     $username = $r['username']; 

     if(strcasecmp($password, $pass2) == 0) { 
      $_SESSION['user'] = $r['user']; 
      $_SESSION['first'] = $r['first']; 
      $_SESSION['last'] = $r['last']; 
      $_SESSION['id'] = $r['id']; 
      header('Location: home.php'); 
     } else { 
      header('Location: index.php?e=incorrect'); 
     } 
    } else { 
     header('Location: index.php?e=empty'); 
    } 
} 
?> 
"index.php에"없다 "home.php"로 연결됩니다 로그인 할 때 양식이 다른 페이지 &에 연결된 경우에도 페이지를 새로 고침합니다

기본적으로 올바른 암호를 입력하면 아무 일도 일어나지 않습니다. 나의 양식은 다음과 같습니다

<!-- index.php --> 
<form action="login.php" method="POST"> 
    <legend>Email Address</legend> 
    <input type="email" name="email" placeholder="Email Address" required><br> 
    <legend>Password</legend> 
    <input type="password" name="password" placeholder="Password" required><br> 
    <input class="btn btn-info" type="submit" name="submit" value="Login"> 
</form> 

당신은 다른 페이지로 링크, 아직 올바른 암호를 입력 할 때 때로 리디렉션을 가정 할 때, 그냥, 형태가있는 페이지를 새로 고침합니다 볼 수 있듯이 "home.php". 이 문 다음

SELECT password FROM users WHERE email = ? 

으로 선택하려는 경우

답변

0

어디에서

$first = $r['first']; 
$last = $r['lastname']; 
$username = $r['username']; 

을 얻을거야?

수행합니다

SELECT * FROM users WHERE email = ? 

또는 올바른 암호를 테스트 할 경우 복잡한 인생은 간단한을 할 이유 또한

SELECT password, first,last,username FROM users WHERE email = ? 

:

또한
if($password == $pass2) { 

가 있음을 확인 가치가있을 것입니다 데이터베이스의 암호는 실제로 사용자 입력을 암호화하는 것과 같은 방법으로 암호화되었습니다.

+0

감사합니다. 감사합니다. 나는 매우 바보 같은 느낌이 든다. 방금 검색어를 다시 살펴 보았습니다. – user2671870

+0

아니 땀, 우리 모두 그것을 해. 문제를 명확하게 보려면 닫으십시오. – RiggsFolly