Maison >développement back-end >tutoriel php >cookie - PHP SESSION读取问题,为什么老是报错session已经开启
<code><?php /** *fileName 1.php * */ $id = 999898; $key = 'order_87'; $_SESSION[$key] = $id; if(!isset($_GET['code'])) { header('Location:http://www.test.com/'); //流程是第一次去请求接口,接口会返回$_GET['code'],接口会重新请求本1.php //我需要在接口返回code之后保存$id的值 } else { $code = $_GET['code']; } $id = $_SESSION[$key]; //为什么这里会报notice 错误 undefined index $key ?我明明先设置了的,session已经开启 </code></code>
<code><?php /** *fileName 1.php * */ $id = 999898; $key = 'order_87'; $_SESSION[$key] = $id; if(!isset($_GET['code'])) { header('Location:http://www.test.com/'); //流程是第一次去请求接口,接口会返回$_GET['code'],接口会重新请求本1.php //我需要在接口返回code之后保存$id的值 } else { $code = $_GET['code']; } $id = $_SESSION[$key]; //为什么这里会报notice 错误 undefined index $key ?我明明先设置了的,session已经开启 </code></code>
session_start(); //加入了吗?
你贴的这段代码不是原始的代码吧?
不管你有没有开启session,你在一开始就给$_SESSION[$key]
赋值了,那么就不会出现undefined index
我猜你这个问题主要是因为header跳转后session_id没有传递,可以检查下这几个东西:
<code>1. 客户端是否禁用了cookie,如果禁用的话,用header要手动传递session_id或开启session.use_trans_sid 2. session_start()要先于任何header() 3. 跳转目标是否开启了session_start() </code>
运行正常,戳demo
加 session_start();
框架用多了吧 哈哈
很多框架默认开启的
看了下回复 key是变量时候的问题
说明这个变量不存在了
就是说 session 存储不了值? 确定磁盘(如果存在磁盘的话)没有满?
设置 $_SESSION[$key] = $id;
立即读取:var_dump($_SESSION[$key]);看看这样子行不行;