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

现在我有两套系统 3个页面
系统A,系统B

PHP code

//当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

作者: sindevil   发布时间: 2011-06-07

你查看一下 session的有效时间;可能是时间过期了;还有就是 session的有效路径 ;

作者: yaoxin125   发布时间: 2011-06-07

你所谓的跨系统是什么意思?

只要是不在同一台机器上,且无公共的 session 服务机制。则必然丢失
如是在同一台机器上,且 session_path 被改变。则必然丢失

作者: xuzuning   发布时间: 2011-06-07

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

asp.net部署在iis php部署在Apache

作者: sindevil   发布时间: 2011-06-07

引用 3 楼 sindevil 的回复:

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

asp.net部署在iis php部署在Apache


且部署在不同的物理机子上

作者: sindevil   发布时间: 2011-06-07

已经接受到的变量无法当做普通字符串来处理写入B系统的Session吗

作者: sindevil   发布时间: 2011-06-07