我正在制作一个Web应用程序,用户可以在其中登录并访问个人资料并进行测验。我大部分工作了,唯一的问题是,它似乎“忘记”了哪个用户登录。这意味着我无法从用户登录会话时访问任何变量。例如,$_SESSION['username'] = $username;当我尝试$username在其他会话或页面中使用变量时,我有一个返回未知变量的变量。另外,我还没有终止我的登录会话。现在,我正在尝试将测验的结果与用户的用户名一起存储到数据库中,但它仅存储得分而不是用户名。下面是我的代码。authenticate.php文件(包含有关用户名的变量)<?phpsession_start();// Change this to your connection info.$DB_HOST = 'localhost';$DB_USER = 'root';$DB_PASS = '';$DB_NAME = 'phplogin';// Try and connect using the info above.$con = mysqli_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);if ( mysqli_connect_errno() ) { // If there is an error with the connection, stop the script and display the error. die ('Failed to connect to MySQL: ' . mysqli_connect_error());}// Now we check if the data was submitted, isset will check if the data exists.if ( !isset($_POST['username'], $_POST['password']) ) { // Could not get the data that should have been sent. die ('Username and/or password does not exist!');}// Prepare our SQLif ($stmt = $con->prepare('SELECT username, password FROM users WHERE username = ?')) { // Bind parameters (s = string, i = int, b = blob, etc), hash the password using the PHP password_hash function. $stmt->bind_param('s', $_POST['username']); $stmt->execute(); $stmt->store_result(); // Store the result so we can check if the st_account exists in the database. if ($stmt->num_rows > 0) { $stmt->bind_result($username, $password); $stmt->fetch(); // st_account exists, now we verify the password. if (password_verify($_POST['password'], $password)) { // Verification success! User has loggedin! $_SESSION['loggedin'] = TRUE; $_SESSION['name'] = $_POST['username']; $_SESSION['username'] = $username; include_once 'homepage.php'; // echo 'Welcome ' . $_SESSION['name'] . '!'; } else { echo 'Incorrect username and/or password!'; } } final.php文件<php include "process.php"?>
- 2 回答
- 0 关注
- 148 浏览
添加回答
举报
0/150
提交
取消