我一直在使用准备好的语句在 PHP 中编写登录脚本,但是我无法让它工作,谁能指出为什么这不起作用?
每当我登录时,我得到的只是“声明失败!”。
//Start session
session_start();
//Include database connection details
require_once('config.php');
//Sanitize the POST values
$login = clean($_POST['login']);
$password = clean($_POST['password']);
$query = $dbconn -> prepare("SELECT * FROM members WHERE login=? AND passwd=?");
$query -> bind_param("ss", $login, $password);
if($query->execute() == true) {
$query -> bind_result($result);
$query -> fetch();
if($result){
$member = mysqli_fetch_assoc($result);
session_regenerate_id();
$_SESSION['SESS_MEMBER_ID'] = $member['member_id'];
$_SESSION['SESS_FIRST_NAME'] = $member['firstname'];
$_SESSION['SESS_LAST_NAME'] = $member['lastname'];
$_SESSION['SESS_IS_ADMIN'] = $member['admin'];
session_write_close();
echo $_SESSION['SESS_MEMBER_ID'];
echo $_SESSION['SESS_FIRST_NAME'];
echo "Test!";
exit();
}else{
echo "Statement failed";
}
}
/* Close statement */
$query -> close();
在 config.php 中有以下内容:
$dbconn = new mysqli('localhost', 'root', 'password', 'bookingsystem');
用户的数据库结构如下所示:
`members` (`member_id`, `firstname`, `lastname`, `login`, `passwd`, `admin`) VALUES
(1, 'Steve', 'Stone', 'Admin', '5f4dcc3b5aa765d61d8327deb882cf99', 1);