这是我的login.php从下面的html按钮调用
$username = "root";
$password = "******";
$hostname = "localhost";
$dbname = "dbname";
// Create connection
$conn = new mysqli($hostname, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$Uname = $_POST['logId'];
$Upass = $_POST['logPass'];
$query= mysql_query("SELECT * FROM user WHERE RegId ='$Uname' AND RegPass ='$Upass'");
$numrows=mysql_num_rows($query);
if($numrows!=0) {
while($row=mysql_fetch_assoc($query)) {
$dbUser=$row['RegId'];
$dbPass=$row['RegPass'];
}
if($Uname == $dbUser && $Upass == $dbPass) {
include 'Home.html';
}
else {
echo "invalid username or password!";
}
}
$conn->close();
下面是HTML代码
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4">
<div class="login-panel panel panel-green">
<div class="panel-heading">
<h3 class="panel-title">Please Sign In</h3>
</div>
<div class="panel-body">
<form action="loginChk.php" method="post">
<div class="form-group">
<label>Please Enter Your Email/Username</label>
<input class="form-control" placeholder="username/E-mail" name="logId"/ >
</div>
<div class="form-group">
<label>Please Enter Your Password</label>
<input class="form-control" placeholder="Password" name="logPass" type="password" />
</div>
<div class="checkbox">
<label>
<input name="remember" type="checkbox" value="Remember Me" />Remember Me
</label>
</div>
<!-- Change this to a button or input when using this as a form -->
<input type="submit" class="btn btn-default" name="logBtn" value="Login"/><br /><br />
<div class="fb-login-button" data-max-rows="1" data-size="large" data-show-faces="false" data-auto-logout-link="false"></div><br /><br />
<a href="Register.html" class="btn btn-info ">Register Here!</a>
</form>
</div>
</div>
</div>
</div>
</div>
当我尝试使用正确的凭据登录时,它给我这个.....
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:'xampp'htdocs'LifeGuru'loginChk.php on line 21
有什么建议吗?
这是一个匆忙完成的完整登录脚本。
loginChk.php:
<?php
session_start();
//Include db connection
include 'db_connect.php';
//Get inputs and encode password to md5() remove that if no md5 enc.
$Username = mysql_real_escape_string($_POST['logId']);
$Password = md5(mysql_real_escape_string($_POST['Password']));
//Username check query
$Check_if_Username = mysql_query("SELECT * FROM Users WHERE Username = '$Username' AND Password = '$Password'");
//Email check query
$Check_if_Mail = mysql_query("SELECT * FROM Users WHERE Email = '$Username' AND Password = '$Password'");
//Check if Username returns any result
if(mysql_num_rows($Check_if_Username)==1){
//Data was found, populate variables:
$data = mysql_fetch_array($Check_if_Username);
$_SESSION['Username'] = $data['Username'];
$_SESSION['LoggedIn'] = TRUE;
}
//Otherwise, check for email match
else if(mysql_num_rows($Check_if_Mail)==1){
//Data was found, populate variables:
$data = mysqli_fetch_array($Check_if_Mail);
$_SESSION['Username'] = $data['Username'];
$_SESSION['LoggedIn'] = TRUE;
}
//No data was found:
else{
mysql_close();
header("Location: /login.php?error=invalid data");
die;
}
//If the user was logged in and the data was found, close mysql connection
mysql_close();
//Then redirect
header("Location: /account.php");
记住mysql_*是贬值的,试着学习解决方法。
让我知道你是怎么做的:)