警告:mysqli_num_rows()要求参数1为mysqli_result,第21行的E:\ LICENTA \ Xampp \ htdocs \ licentaCC \ login.php中给出布尔值
$
<?php
session_start();
require_once('connect.php');
}
if(isset($_POST) & !empty($_POST)){
$username = mysqli_real_escape_string($connection, $_POST['username']);
$password = md5($_POST['password']);
$sql = "SELECT * FORM `login` WHERE";
if(filter_var($username, FILTER_VALIDATE_EMAIL)){
$sql .= "email='$username'";
}else{
$sql .= "username='$username'"; }
$sql .= " AND password='$password' AND active=1";
$sql;
$res = mysqli_query($connection, $sql);
**$count = mysqli_num_rows($res);
if($count == 1){**
$_SESSION['username'] = $username;
header('location: login.php');
}else{ $fmsg = "User does not exist"; } }
?>
答案 0 :(得分:0)
正如您所看到的,您没有在语句的各个部分之间放置任何空格,因此在连接SQL字符串后的最终结果如下所示:
WHEREemail='username'
或
WHEREusername='username'
这不是一个有效的陈述。你看到了问题吗?
答案 1 :(得分:-1)
这里有一些建议。
显示你的connect.php代码(没有密码),因为它可能包含有用的信息。
不要将变量直接注入SQL字符串,使用参数绑定::这里的好例子http://php.net/manual/en/mysqli-stmt.bind-param.php