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)。还有其他方法保存用户名并将其保存到另一个文件中吗?哦,我发现了错误。。。我没有在页面顶部开始会话。。。