2014-02-12 2 views
0

PHP와 mysqli를 사용하여 간단한 로그인 양식을 만들려고 시도했지만 작동하지 않습니다. 지금까지 데이터베이스에 성공적으로 데이터를 전송하는 등록 양식을 만들었으며 sha1을 사용하여 암호를 암호화했습니다. 아래에 첨부 된 코드를 사용하여 이전에 저장 한 사용자 이름과 암호에 액세스하려고 할 때 문제가 시작됩니다. 제출 한 Im은 다음과 같이 표시됩니다. 잘못된 사용자 이름 또는 암호. 누구든지 도와 드릴 수 있습니까? 그것은 나에게 3 일을 벌써 가져 갔다. 그리고 아직도 그것을 움직이게하는 방법을 계산할 수 없다.간단한 로그인 문제 - PHP

<?php 
include_once ('includes/connection.php'); 
?> 

<!DOCTYPE html> 

<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Login Form</title> 
    </head> 
    <body> 
<?php 
if(isset($_POST['submit_login'])) { 

    $username = $mysqli->real_escape_string($_POST['username']); 
    $password = sha1($_POST['password']); 

    $login_query = $mysqli->query("SELECT user_username, user_password FROM sd_users WHERE user_username = '$username' AND user_password = '$password'"); 

    $count = $login_query->num_rows; 

    if ($count == 1) { 

      echo 'You are succesfully login!'; 

     } else { 

      echo 'Wrong username or password'; 

    } 

} 
?> 
     <div class="login-form"> 
      <h3>LOGIN</h3> 
      <form action="index.php" method="post"> 
       <p>Username: 
        <input type="text" name="username" value=""/> 
       </p> 
       <p>Psssword: 
        <input type="password" name="password" value=""/> 
       </p> 
       <input type="submit" name="submit_login" value="Login"/> 
      </form> 
     </div> 
    </body> 
</html> 
+0

등록 또는 로그인 할 때 비밀번호 값이 올바르게 입력되는지 확인하십시오. 빈 값의 'sha1'은 여전히 ​​sha1이됩니다. 실제 쿼리에 사용 된 값을 디버깅하고 db를보고, 일치하지 않는 이유를 확인하십시오. – helion3

+0

'$ mysqli-> query (...) 또는 die (mysqli_error ($ mysqli)); ' –

+0

원래 DB에 저장된 비밀번호도 SHA1 해쉬입니다. 맞습니까? – Quixrick

답변

-2

MySQL 쿼리에 전달할 변수가 올바른지 확인하십시오. MySQL의 쿼리에 PHP 변수를 넣으려면이로 변경 : 그 $username$password 변수를 넣어

$login_query = $mysqli->query("SELECT user_username, user_password FROM sd_users WHERE user_username = '".$username."' AND user_password = '".$password."'");

공지 방법에 대해 설명합니다.

나는 불과 몇 달 전에 PHP와 MySQL로 보안 로그인 시스템을 만드는 과정과 똑같은 과정을 밟았 기 때문에 어디에서 왔는지 알고 있습니다. 이 질문에 대한 답이 아니라면 알려주십시오.

+0

문자열 연결은이 문제와 아무 관련이 없습니다. http://www.php.net/manual/en/language.types.string.php –

+0

"을 사용하면 기본적으로 PHP는 변수 문자열을 자동으로 구문 분석하므로 연결될 필요가 없습니다. 그 점. – Zarathuztra

+0

나는 그것을 단지 바꾸고, 다시 운행한다. 운이 없다. – user3277558