跨系统 Post 赋值给Session 丢失问题

sindevil 2011-06-07 04:17:16
现在我有两套系统 3个页面
系统A,系统B


//当A1 post到 B1时带一参数message,B1接受该参数
//B1页面

<?php
$message = $_POST['message'];
echo $message;//参数值正常输出
?>

//当我需要把$message写入到B系统的Session里
//B1页面

<?php
session_start();
$_SESSION['sessionMessage'] = $message;
echo $_SESSION['sessionMessage'];//值正常输出
?>

//当B1post到B2时
//B2页面

<?php
session_start();
echo $_SESSION['sessionMessage'];//空值
?>

//查找php Session储存文件夹,找到记录的Session文件,打开后发现只有sessionMessage|N;的信息
//回到B1页面修改代码

<?php
session_start();
$var ='123456';
$_SESSION['sessionMessage'] = $var;
echo $_SESSION['sessionMessage'];//值正常输出"123456"
?>

//post到B2页面
//输出"123456"
//查看Session记录文件,内容为:sessionMessage|s:6:"123456";
//再次修改B1页面

<?php
session_start();
$var =$message;
$_SESSION['sessionMessage'] = $var;
echo $_SESSION['sessionMessage'];//值正常输出
?>

//post到B2又是空值


为什么我跨系统post过来正确的变量值无法写入到session
...全文
178 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sindevil 2011-06-08
  • 打赏
  • 举报
回复
异常诡异 晾了程序一个晚上早上起来运行 Session没问题了
sindevil 2011-06-07
  • 打赏
  • 举报
回复
B1和B2是同一个系统里的页面呀

A1和B1B2才是不同的系统
beatless 2011-06-07
  • 打赏
  • 举报
回复
当你从B1 POST 到B2 的时候原先的$_SESSION['sessionMessage'];是保存在B1系统的服务器端的,你当然无法从B2当中获取$_SESSION['sessionMessage'];的值了。有一个方法是你可以将$_SESSION['sessionMessage'];通过POST传递到B2去接受值。
sindevil 2011-06-07
  • 打赏
  • 举报
回复
已经接受到的变量无法当做普通字符串来处理写入B系统的Session吗
sindevil 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sindevil 的回复:]

跨系统是指 A系统是Asp.net的程序 B系统指php程序

asp.net部署在iis php部署在Apache
[/Quote]

且部署在不同的物理机子上
sindevil 2011-06-07
  • 打赏
  • 举报
回复
跨系统是指 A系统是Asp.net的程序 B系统指php程序

asp.net部署在iis php部署在Apache
xuzuning 2011-06-07
  • 打赏
  • 举报
回复
你所谓的跨系统是什么意思?

只要是不在同一台机器上,且无公共的 session 服务机制。则必然丢失
如是在同一台机器上,且 session_path 被改变。则必然丢失
牧羊人之月 2011-06-07
  • 打赏
  • 举报
回复
你查看一下 session的有效时间;可能是时间过期了;还有就是 session的有效路径 ;

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧