用户登录 php 表单,使用后端 mysql 表进行身份验证,启动会话,将它们带到下一页。
您需要在使用它之前启动会话。所以session_start();
在脚本的开头调用。
该查询也是不安全的,因为会话 inst 中的值已转义。如果您使用PDO或Mysqli,您可以使用准备好的语句来帮助您:
session_start();
if(isset($_SESSION['username'])) {
$db = new PDO($dsn, $user, $pass);
// the ? is a placeholder and will be replaced with the value supplied to
// PDOStatement::execute
$sql = 'SELECT * FROM users WHERE username = ? LIMIT 1';
$stmt->prepare($sql);
// Supply the value for the place holder and execute the query
$stmt->execute(array($_SESSION['username']));
// get the first and only row of data and close the statement cursor
$userData = $stmt->fetch(PDO::FETCH_ASSOC);
$stmt->closeCursor();
if(!$userData) {
// no user data handle appropriately
}
} else {
// redirect to login page?
}