Php 从会话获取变量不需要';行不通

Php 从会话获取变量不需要';行不通,php,session,globals,Php,Session,Globals,在我的登录脚本中,我启动一个会话并在其中输入用户名。但是由于我的代码在另一个脚本中,我无法取回变量 session_start(); $username = $_POST['username']; $password = $_POST['password']; $conn = mysqli_connect("#", "#", "#", "#"); $query = "SELECT username, password from login where username=? AND passwor

在我的登录脚本中,我启动一个会话并在其中输入用户名。但是由于我的代码在另一个脚本中,我无法取回变量

session_start();
$username = $_POST['username'];
$password = $_POST['password'];
$conn = mysqli_connect("#", "#", "#", "#");
$query = "SELECT username, password from login where username=? AND password=? LIMIT 1";
$stmt = $conn->prepare($query);
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
$stmt->bind_result($username, $password);
$stmt->store_result();
if($stmt->fetch())
{
  $_SESSION['login_user'] = $username;
  header("Location: site.php");
  exit();
}
附言:我不知道为什么我有时使用mySQLi,有时使用PDO

include "login.php";
$user_check = $_SESSION['login_user'];

错误是什么?

您似乎没有在数据库中对用户密码进行哈希运算-使用
password\u hash
password\u verify
正确存储和使用密码。sql查询是否可能失败且未填充会话变量-上述代码看起来没有任何问题,除了未能检查是否正在创建
$stmt
,或者测试
execute
的返回值之外,如果重定向正常,则$stmt没有问题。如果是这种情况,则必须确保在使用$\u会话['login\u user']之前使用会话_start()。重定向有效。。。我有一个包含登录脚本的索引文件。并且需要用户名来检查用户是否有权限(获取权限,其中username=$username)。还有其他方法保存用户名并将其保存到另一个文件中吗?哦,我发现了错误。。。我没有在页面顶部开始会话。。。