每次刷新页面都会生产新的session_id

在测试通过 URL 来传递 session_id 的时候,发现没进行一次页面刷新,都会生成一个新的 session_id,有没有办法重用现有的 session_id ?

代码:
set_session.php

<?php
header("Content-type:text/html;charset=utf-8");

ini_set('session.use_trans_sid', 1);
ini_set("session.use_only_cookies",0);
ini_set('session.use_cookies', 0);
ini_set('session.name', 'sid');

session_start();
$_SESSION['user']['username'] = 'dee';
$_SESSION['user']['level'] = 'admin';

echo session_id(),'<br />';
echo '<a href="test_b.php" target="_blank">跳转</a>';

get_session.php

<?php
ini_set('session.use_trans_sid', 1);
ini_set("session.use_only_cookies",0);
ini_set('session.use_cookies', 0);
ini_set('session.name', 'sid');

session_start();

echo session_id(),'<br />';
echo '<pre>';print_r($_SESSION);

会发现每次执行 set_session.php 都会生成新的 session_id。

阅读 7.5k
1 个回答

通过 URL 来保存session的时候是把session的数据保存在URL里面的,所以需要请求/path/to/phpfile.php;phpsessonid=数据。这样的URL,服务器端才认为设置了session。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题