2014-02-28 4 views
0

그래서 로그인 시스템으로 작동해야하는 다음 코드가 있습니다. 입력해야 할 세부 사항을 입력하면 "잘못된 세부 사항이 있습니다. 다시 시도하십시오."라는 메시지가 계속 나타납니다. 이것은 아마도 어리석은 기본 버그 일 뿐이지 만 나는 PHP에 익숙하지 않다.로그인 시스템 로그인이 없습니다

<?php 

$dbc = mysqli_connect("hostaddress","user","pass") or 
     die("Could not connect to server". mysqli_connect_error()); 

mysqli_select_db($dbc, "dbname") or die("could not connect to the database"); 

//Check if the login form has been submitted; 

if(isset($_POST["go"])) { 
     $addr = mysqli_real_escape_string($dbc, htmlentities($_POST["e_address"])); 
     $psw = SHA1 ($_POST["u_pass"]); //Using sha1() to encrypt passwords 

     //query to check if the email address and password match; 
     $q = "SELECT * FROM users WHERE address='$addr' AND pass='$psw'"; 

     //run the query and store result; 
     $res = mysqli_query($dbc, $q); 

     //Make sure we have a positive result; 
     if($res = mysqli_query($dbc, $q)) { 
     //Start a session; 
     session_start(); 

     //Creating a log session variable that will persist through pages; 
     $_SESSION["log"] = "in"; 

     //Redirecting to restricted page; 
     header("location: restricted.php"); 

     } else { 
     //Create an error message; 
     $error = "Wrong details. Please try again"; 
     } 

} //End isset go 

?> 

<form method="post" action="#"> 

    <p><label for="e_address">Email Address:</label></p> 
    <p><input type="text" name="e_address" value="" placeholder="Email Address" maxlength="30"></p> 
    <p><label for="u_pass">Password:</label></p> 
    <p><input type="password" name="u_pass" value="" placeholder="Password" maxlength="12"></p> 
<p><button type="submit" name="go">Log me in</button></p> 
</form> 

<!-- Error Displayer --> 
<p><strong><?php if(isset($error)) { echo $error; } ?></strong></p> 
+2

경우 ($ res = mysqli_query ($ dbc, $ q)) {는 double = 기호 여야하지만 결과 변수가 같은지 두 번 확인하기 때문에 항상 true를 반환합니다 – Chitowns24

+4

Ryan, 다섯 가지 질문을했습니다. 이걸로 ite 및 각각의 질문은 공통 주제를 공유합니다. 여기에 게시하기 전에 사용자가 직접 디버깅을 수행했다는 표시가 없습니다. 디버깅은 소프트웨어 개발 프로세스의 필수적인 부분입니다. 나는 당신이 당신을 위해 당신의 일을하기 위해 SO 개발자들에게 의존하는 대신에 디버깅하는 방법을 배우는데 시간을 할애 할 것을 강력하게 제안한다. 우리는 특히 어려운 문제들을 도울 수 있지만 이러한 기본적인 어려움을 확인하고 극복하는 것을 배우는 것이 일상적인 과정의 일부가되어야합니다. –

+0

조지 할거야. –

답변

0

시도는 첫 번째 줄

에서 session_start(); 시작 쿼리 후 추가 시도 or die(__LINE__." ".mysqli_error($dbc))

와 U는 암호없이 쿼리를 사용하여 PHP와 다음 암호를 확인하실 수 있습니다

관련 문제