我一直在试图解决我自己,为我的生活不能修复这个问题..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和4日和5日线密码返回此:
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) }
,我的用户名和密码都输入的值都是有效的(他们是在正确的列下的数据库,相信我)。我有一种感觉,我的select查询出了问题,因为mysqli_num_rows($ select)上的var转储没有返回任何东西。所以说,我已经尝试了几乎所有可以考虑的查询变化它的工作,但仍然没有:[任何人都可以帮忙吗?
用户名前缀和后缀大括号?这不是一个错字? – Daneo
''var_dump(md5($ _ POST ['password']));'产生与密码列中的数据库中相同的密码?在这个查询中,你也很容易受到sql注入的影响。 – drew010
+1 to @ drew10。如果您确定用户名是正确的,那么必须验证数据库中密码的加密 – janenz00