[英]I cant get/access the value of my session variables to another page
我有访问会话变量值的问题。
我正在创建一个登录页面,这是我设置我的会话变量的值。
的index.php
$row = mysqli_fetch_array($result);
if(mysqli_num_rows($result) > 0){
session_regenerate_id();
$user = mysqli_fetch_assoc($result);
$_SESSION['SESS_ID'] = $user['id'];
$_SESSION['SESS_UNAME'] = $user['username'];
$_SESSION['SESS_PASS'] = $user['password'];
session_write_close();
header("location:home.php");
exit();
}
home.php
<?php
session_start();
if(!isset($_SESSION['SESS_ID']) || (trim($_SESSION['SESS_ID'])) == ''){
header("location:index.php");
exit();
}
?>
<html>
<body>
<p>Login Successful</p>
</body>
</html>
这里的问题是我在$ _SESSION ['SESS_ID']中没有任何价值..那么如何在home.php中获取或访问此会话变量的值?
删除$row = mysqli_fetch_array($result);
线。
您的会话未设置的原因是因为调用$row = mysqli_fetch_array($result);
$result
的内部数据指针已经提前,你的$user = mysqli_fetch_assoc($result);
没有您期望的值,这就是您设置的所有会话变量为空的原因。
的index.php
session_start();
$row = mysqli_fetch_array($result);
if(mysqli_num_rows($result) > 0){
session_regenerate_id();
$user = mysqli_fetch_assoc($result);
$_SESSION['SESS_ID'] = $user['id'];
$_SESSION['SESS_UNAME'] = $user['username'];
$_SESSION['SESS_PASS'] = $user['password'];
session_write_close();
header("location:home.php");
exit();
}
在index.php上添加session_start()
当Session变量没有存储数据时,唯一导致此类结果的问题。 你的代码是写的。 请检查index.php中的session_start():在顶部。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.