这是我从教程中得到的代码点,当我尝试登录时,它无法正常工作!它说:
警告:mysqli_fetch_array()要求参数1为mysqli_result,第13行的C:\ xampp \ htdocs \ index.php中给出布尔值
警告:mysqli_num_rows()期望参数1为mysqli_result,第16行的C:\ xampp \ htdocs \ index.php中给出布尔值
<?php
include("config.php");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST") {
// username and password sent from form
$myusername = mysqli_real_escape_string($db,$_POST['username']);
$mypassword = mysqli_real_escape_string($db,$_POST['password']);
$sql = "SELECT * FROM tbl_users WHERE username = '$myusername' and password = '$mypassword'";
$result = mysqli_query($db,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$active = $row['active'];
$count = mysqli_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count == 1) {
session_register("myusername");
$_SESSION['login_user'] = $myusername;
header("location: welcome.php");
}else {
$error = "Your Login Name or Password is invalid";
}
}
?>
非常感谢任何帮助!! 提前谢谢。
用&#34; .username更改用户名。&#34; ...这是代码!!
<?php
include("config.php");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST") {
// username and password sent from form
$myusername = mysqli_real_escape_string($db,$_POST['username']);
$mypassword = mysqli_real_escape_string($db,$_POST['password']);
$sql = "SELECT * FROM tbl_users WHERE username = '".$myusername."' and password = '".$mypassword."'";
$result = mysqli_query($db,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$active = $row['active'];
$count = mysqli_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count == 1) {
session_register("myusername");
$_SESSION['login_user'] = $myusername;
header("location: welcome.php");
}else {
$error = "Your Login Name or Password is invalid";
}
}
?>
<html>
<head><title>Login Page PHP Script</title></head>
<body>
<div align="center">
<div style="width:300px; border: solid 1px #006D9C; " align="left">
<?php
if(isset($errMsg)){
echo '<div style="color:#FF0000;text-align:center;font-size:12px;">'.$errMsg.'</div>';
}
?>
<div style="background-color:#006D9C; color:#FFFFFF; padding:3px;"><b>Login</b></div>
<div style="margin:30px">
<form action="" method="post">
<label>Username :</label><input type="text" name="username" class="box"/><br /><br />
<label>Password :</label><input type="password" name="password" class="box" /><br/><br />
<input type="submit" name='submit' value="Submit" class='submit'/><br />
</form>
</div>
</div>
</div>
</body>
</html>
答案 0 :(得分:0)
您的查询中出现错误,这就是mysqli_fetch_array()返回false而不是对象的原因。
请尝试以下方法查看问题所在。
if (!$result) {
printf("Error: %s\n", mysqli_error($db));
exit();
}
但是,从您的代码来看,查询应该是(假设用户名和密码不为空):
$sql = "SELECT * FROM tbl_users WHERE username = '" . $myusername . "' and password = '" . $mypassword . "'";
答案 1 :(得分:0)
mysqli_real_escape_string()必须只包含一个参数 - 要转义的字符串。
$myusername = mysqli_real_escape_string($_POST['username']);
$mypassword = mysqli_real_escape_string($_POST['password']);
答案 2 :(得分:0)
首先尝试一下。
$row = mysqli_fetch_array($result);
之后你可以检查错误。
mysqli_fetch_array($result) or die(mysqli_error());