2014-06-07 3 views
0

웹 사이트에 대한 기본 로그인 시스템을 설정하려고하지만 올바르게 작동하는 데 중요한 문제가 발생합니다. 지금까지 무슨 일이 일어나고 있는지 알아 내려고 노력한 모든 것이 실패했습니다. 지금까지 쿼리 자체가 실패하지 않았다고 말할 수는 있지만 데이터를 반환하지는 않습니다. phpMyAdmin에서 쿼리를 사용하면 올바른 쿼리 정보가 반환됩니다.PHP/MySQL 쿼리 관련 문제

<?PHP 

//Empty error variables 
$sqlerror; 

if(empty($_POST['uname'])) 
{ 
    $data = "false,Username field empty"; 
    echo json_encode($data); 
    return false; 
} 

if (empty($_POST['pword'])) 
{ 
    $data = "false,Password field empty"; 
    echo json_encode($data); 
    return false; 
} 

$username = $_POST['uname']; 
$password = $_POST['pword']; 

echo $username."<br/>"; 

echo $password."<br/>"; 

if(!CheckDB()) 
{ 
    $data = "false,".$sqlerror; 
    echo json_encode($data); 
    return false; 
} 

else 
{ 
    CheckDBL(); 
} 

function CheckDB() 
{ 
    echo "Made it to CheckDB! <br/>"; 
    $connection = mysqli_connect("xxxx","xxxx","xxxx","xxxx"); 

    if(mysqli_connect_errno()) 
    { 
     $sqlerror = "Could not log in to database"; 
     return false; 
    } 

    echo "Connection established! <br/>"; 
    mysqli_close($connection); 
    return true;  
} 

function CheckDBL($username,$password) 
{ 
    echo "Made it to CheckDBL! <br/>"; 
    $sql = mysqli_connect("xxxx","xxxx","xxxx","xxxx"); 

    if(mysqli_connect_errno()) 
    { 
     echo "Connection failed"; 
     return false; 
    } 



if ($query = mysqli_prepare($sql,"Select Password From login_info Where Username = ?")) 
    { 
     mysqli_stmt_bind_param($query, "s", $username); 

     if (!mysqli_stmt_execute($query)) 
     { 
      echo "Query failed! <br/>"; 
      echo mysqli_error($sql); 
      return false; 
     } 

     else 
     { 
      echo "Query successful <br/>"; 
     } 

     mysqli_stmt_bind_result($query,$password2); 
     mysqli_stmt_fetch($query); 

     echo "The password is: ".$password2; 
    } 

    else 
    { 
     echo "Statement preparation failed <br/>"; 
    } 
} 
?> 

그리고이 코드에서 내 브라우저에서 출력 :

GWil

testPassword를

CHECKDB로 제작

여기 내 PHP 코드입니다!

연결이 설정되었습니다.

CheckDBL에 작성했습니다!

쿼리 성공

암호는 다음과 같습니다

테이블에
+0

아니요, 코드에서 어디에 쿼리 정보가 표시되는지 확인하십시오. – Fallenreaper

+0

그리고 인쇄하려면 어떻게해야합니까? 출력은 괜찮아 보인다? – Xatenev

+0

그리고 여기서 무엇을 기대합니까? –

답변

1
$connect = mysqli_connect("localhost","root","","database") or die (mysqli_error($connect)); 
mysqli_set_charset($connect,"utf8"); 

$username="hej"; 

if ($query = mysqli_prepare($connect,"Select Password From login_info Where Username =?")){ 

mysqli_stmt_bind_param($query, "s", $username); 

    if (!mysqli_stmt_execute($query)){ 

    echo "Query failed! <br/>"; 
    echo mysqli_error($query); 
    return false; 
    }else{ 
    echo "Query successful <br/>"; 
    } 
mysqli_stmt_bind_result($query,$password2);<br/> 
mysqli_stmt_fetch($query);<br/> echo "The password is: ".$password2;<br/> 
}else{ 
echo "Statement preparation failed";} 

내가 이름 = HEJ과 암호가 login_info = 123

이 당신을 위해 무엇을 찾고있는 achive 것입니다.

+0

그래, 그것은 모든 데이터가 반환되고 출력을 얻으려고 노력하고있는 모든 땜질 때문에 난장판입니다. 당신의 제안 된 코드 변경에 관해서는, 그것은 PHP 페이지에 추가 정보를 생산하지 않았다. 내 OP에서 설명한 것과 같은 출력. – Geowil

+0

http://www.php.net/manual/en/mysqli.prepare.php 여기를 클릭하면 원하는 답을 찾을 수 있습니다. 지금 코드를 실제로 정리해야하고, 연결 부분에서 준비하고 실행해야하기 때문에 코드를 정리해야합니다. – user3655857

+0

나는 그 문서 페이지의 제안을 따르고 나의 OP에서 코드를 업데이트했다. 상황은 여전히 ​​제대로 작동하지 않지만 진술이 제대로 준비되고있는 것처럼 보입니다. – Geowil