session_id跨页变化的处理

今天碰到一个怪问题,

第一个页使用 session_start(); 第二个页也有 session_start(), 但是 第一个页面的 $_SESSION 变量却无法传到第二个页。

在网上搜索无数帖子,才逐渐清晰并处理完毕,在互联网上的中国帖子真是无法看,全是东超西抄,毫无价值的内容充斥着。

我是使用 ajax弹出一个 iframe 窗口,在这个 frame 窗口中处理一个post请求,使用session传递变量。

使用 echo session_id(); 在两个页面内是不同的,这个也是导致两个页之间session丢失的主要原因。但是在 独立窗口运行,

session_id() 确实相同值,能正常传输数据。

因此处理方案就是 在第一个也内 ,用一个变量记录 session_id()的值。然后在公共文件头使用

 if(isset($_POST[‘sid’]))
     session_id($_POST[‘sid’]);
 else if(isset($_GET[‘sid’]))
     session_id($_GET[‘sid’]);

     session_start();
  
 setcookie(“PHPSESSID”,session_id(),0,””,””,0);

测试,数据能正常传输到另一个页了,至于网上说需要改 php.ini 啥的,到处都是,如果不确定自己去核对就好了。

主要是学会发现问题出处方法,至于处理,中文英文到处都是。。。

发布者

admin

互联网web开发管理