해야 할 때 mysqli_num_rows = 0이 .. 난 내 자신과 내 인생을 해결할 수없는이 문제를 해결하기 위해 노력했습니다 1
//If they are, retreive them from the Person table
var_dump($_POST['username']);
var_dump($_POST['password']);
$select = $this-> doQuery("SELECT * FROM Person WHERE username = '{$_POST['username']}' AND password = '".md5($_POST['password'])."'");
var_dump($select);
try {
if (mysqli_num_rows($select) > 0){
var_dump(mysqli_num_rows($select));
//fetching username and password from database
$fetch_array = mysqli_fetch_assoc($select);
var_dump($fetch_array);
//Building a session for the user
$_SESSION['username'] = $fetch_array['username'];
//var_dump($_SESSION['username']);
//Redirecting the user to the index page
header('Location:index.php');
return true;
}
사용자 이름에 두 var_dumps
및string(8) "johnny03"
string(9) "password3"
object(mysqli_result)#3 (5) { ["current_field"]=> int(0) ["field_count"]=> int(8) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) }
내가 암호와 사용자 이름을 모두 입력 한 값은 (그들이 나를 신뢰, 올바른 열 아래에있는 데이터베이스에있는) 모두 유효 : 4, 5 라인에 암호가이 돌아왔다. mysqli_num_rows ($ select)의 var 덤프가 아무 것도 반환하지 않기 때문에 내가 선택한 쿼리에 뭔가 잘못되었다는 느낌이 들었다. 내가 말하고자하는 것은, 내가 생각할 수있는 쿼리에 대한 모든 변경을 시도했다는 것이다. 그것은 작동하고 여전히 아무것도 : [아무도 도와 줄 수 있습니까?
사용자 이름 앞에 접미사와 접미사가 있습니까? 그건 오타가 아니야? – Daneo
그리고'var_dump (md5 ($ _ POST [ 'password']));는 패스워드 컬럼에있는 데이터베이스와 같은 패스워드를 생성합니까? 또한 해당 쿼리에서 sql-injection에 취약합니다. – drew010
+1에서 @ drew10. 사용자 이름이 정확하면 데이터베이스의 암호 암호화를 확인해야합니다. – janenz00