php - session 变量不持久

标签 php session

我尝试在我的应用程序中使用一些 session 变量,但是,我无法让它们显示在我需要它们的页面上。

这是设置它们的代码(我也手动为它们分配了值,所以问题不是数据库拉取):

if ($name != ""){
    $_SESSION['name'] = $name;
    $_SESSION['id'] = $user_id;
}

我用 session_start(); 开始该页面,就像我在所有将使用 session 变量的页面上所做的那样。

当我尝试在另一个页面上调用 session 变量时,它们不再存在,即使那是分配值的页面重定向到的页面。

这就是我尝试调用 session 变量的方式:

 $name = $_SESSION['name'];
 $user_id = $_SESSION['id'];

为什么要这样做?

编辑:为了帮助我包括该页面的其余代码。数据库连接部分工作正常,它们与我在其他地方使用的相同。

 <?php
 session_start();

 define('DB_SERVER', '<server>');
 define('DB_USER','<db>');
 define('DB_PASSWORD' , '<password>');
 define('DB_NAME' , '<db-name>');

 $conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or 
        die('There was a problem connecting to the database');

 $stmt = "Select User.user_id, User.name from User where User.username = '" .       
 $_POST["username"] . "' AND User.password = '" . $_POST["pwd"] . "';";

 if(!$result = $conn->query($stmt)){
die('there was an error retrieving the information');
 }

$row = $result->fetch_assoc();
$name = $row['name'];
$user_id = $row['user_id'];

$_SESSION["name"] = $name;
$_SESSION["id"] = $user_id;

if ($name != ""){

$conn->close();
?>
<script type="text/javascript">
<!--
window.location = "store.php"
//-->
</script>

<?php
}
else{
?>
<script type="text/javascript">
<!--
window.location = "register.php"
//-->
</script>
<?php
}
?>

最佳答案

只有两种可能性:

  1. 在任何输出之前您没有启动 session 。
  2. $name 已经为空或null

您必须执行以下操作才能进行调试:

  1. if 条件之前回显 $name
  2. error_reporting(E_ALL); 或检查这个问题:How to get useful error messages in PHP?

关于php - session 变量不持久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18565563/

相关文章:

java - 在ServletContextListener中访问 session 变量

ruby-on-rails - cucumber 和 capybara 情景 session

c# - 当您使用 DynamoDB 访问时, session 状态是否会读取/写入所有内容

php - 如何根据 PHP 中的键值合并/组合/插入 2 个不同的数组

php - 为什么我不必再次在 SELECT 上重新转义表单数据?

PHP 和 XML (PT) 时间格式

php - Hadoop 流 : no such file found error (error in configuring object)

java - Google App Engine Java - 在用户关闭浏览器后保持 session Activity (记住我功能)

java - 提交响应后无法创建 session

php - 将数据数组传递给 PHP 脚本,并将其插入到 mysql