php持久变量,PHP-会话变量不持久

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

这是设置它们的代码(我也已经为它们手动分配了值,因此问题出在数据库拉力上):

if ($name != ""){

$_SESSION['name'] = $name;

$_SESSION['id'] = $user_id;

}

我以session_start();开头该页面,就像在将要使用会话变量的所有页面上一样.

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

这就是我试图调用会话变量的方式:

$name = $_SESSION['name'];

$user_id = $_SESSION['id'];

为什么会这样做呢?

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

session_start();

define('DB_SERVER', '');

define('DB_USER','');

define('DB_PASSWORD' , '');

define('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();

?>

}

else{

?>

}

?>

解决方法:

只有两个概率:

>在没有任何输出之前,您尚未启动会话.

> $name已经为空或为空.

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

>在if条件之前回显$name.

> error_reporting(E_ALL);或签出此问题:How to get useful error messages in PHP?

标签:session,php

来源: https://codeday.me/bug/20191030/1968166.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值