2016-09-10 1 views
0
<?php 
require_once("connect.php"); 

$login1 = $_POST['email']; 
$password1 = $_POST['password']; 
$select = "SELECT id FROM loginregistration WHERE login ='$login1', password ='$password1'"; 
$sql = mysqli_query($con,$select); 
$row = mysqli_fetch_assoc($sql); 
?>` 

내 mysqli_query이 작동하지 않는 것 같다 주어진?mysqli_fetch_assoc() 매개 변수 1 mysqli_result 할 것으로 예상, 부울 내가 어떻게해야

+0

가능한 복제를 알고 [mysqli \ _fetch \ _array()/mysqli \ _fetch \ _assoc()/mysqli \ _fetch \ _row() 매개 변수 (1) 자원 또는 mysqli의 \ _result 될 것으로 예상, 부울 부여를 ] (http://stackoverflow.com/questions/2973202/mysqli-fetch-array-mysqli-fetch-assoc-mysqli-fetch-row-expects-parameter-1) – David

+0

먼저 SQL 주입을 수정해야합니다. 취약점 (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) 실제로 사용자가 자신의 쿼리를 정의하도록하는 대신 실행하는 쿼리를 실제로 제어하는 ​​방법 . 다음으로해야 할 일은 쿼리를 실행 한 후에 오류를 확인하고 성공했다고 가정하지 말아야합니다. 데이터베이스가 문제의 원인을 알려주지 만이 코드는 해당 오류 메시지를 무시합니다. – David

+0

password = select "FROM loginregistration where login = '". $ login1. "'및 password = '". $ password1. "'"에서 쉼표를 결합하여 쉼표를 제거하십시오. – JYoThI

답변

2

사용하고 쉼표의 insted (,) 쿼리 false를 반환 이유와 쿼리가 false를 반환하지 않을 경우 UPDATE 그런 오류

$select = "SELECT id FROM loginregistration WHERE login ='".$login1."' and password ='".$password1."'"; 

1

을 던져 암호 근처 쿼리한다. 그래서 당신은 mysqli_error ($ con)를 사용할 수있다; 오류를의

<?php 
    require_once("connect.php"); 

    $login1 = $_POST['email']; 
    $password1 = $_POST['password']; 
    $select = "SELECT id FROM loginregistration WHERE login ='".$login1."' AND password ='".$password1."'"; 
    $sql = mysqli_query($con,$select); 

    if($sql === FALSE) { 
     die(mysqli_error($con)); // better error handling 
    } 

    $row = mysqli_fetch_assoc($sql); 
    ?> 
+0

아, 고마워.) –

관련 문제