!!!等待急救,关于SESSON跨页传递的问题!!!100分 !!!!!!!!!!!!!!!!!!!!!!!!!!!!! t1.php 没有session_start(); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 加上之后测试,效果一样。用不用都一样,并且PHP配置中已经让SESSION自动运行了。所以,可以确认跟这个没有关系。 你的seesion的 tmp目录配置好没有? 配置好了,设定是:C:/php5/temp并且每次写入SESSION时,有两个文件产生,其中一个是SESS_127001,内容就是我写入的内容,另一个文件是空的,0k。 把所有session都加多个"_x"吧,如$_SESSION['password_x'],试试看。 t1.php<?PHPglobal $TransIp;if ( !empty($_SERVER["HTTP_X_FORWARDED_FOR"]) ){$tempip = split(",", $_SERVER["HTTP_X_FORWARDED_FOR"]);$UserIp = $tempip[0];}else{$UserIp = $_SERVER["REMOTE_ADDR"];}$TransIp =str_replace(".","",$UserIp);session_id($TransIp); // 用 session_id() 可避免user的cookie沒開的問題 //echo "写入的SESSION值是:".$_SESSION["address"];?>t2.php<?phpinclude_once 't1.php'; // 時隔一年多,已忘了這行有沒有必要加,你可以先不加這行試試看session_start();$id = "8881"; //strtoupper($_POST['id']);$password = "12345611111";//$_POST['password'];$_SESSION['userid'] = $id;$_SESSION['password'] = $password;// 以下類推隨你加echo "session_id is : ".session_id()." <br>";; //读出来的值是:127001echo "写入的SESSION值是: <br>".$_SESSION['userid']." <br>".$_SESSION['password']; //这里读出来的结果正常。?>t3.php<?PHPinclude_once('t1.php'); session_start();echo "session_id is : ".session_id()." <br>"; //读出来的值是127001echo "读出的SEESION值是: <br>".$_SESSION['userid']." <br>"; //读出来的是空值;echo $_SESSION['password']." <br>"; //读出来的是空值;echo session_id()." <br>结束";?> 就是指定session_id一定要在session_start之前session_id( 'xxxx' );session_start(); 不行啊,TX们!不管是:session_id( 'xxxx' ); session_start(); 还是session_start(); session_id( 'xxxx' ); 都没用,效果是一样的,另外,这样//session_start(); //session_id( 'xxxx' ); 即不指定ID和不使用手动启动,都是一样的,还是只能在当前页输出SESSION。还得有劳大家啊。搞了一天多了,没有效果。 cookie设置是允许第一方、第三方。总之是没有限制。我怀疑是不是系统配置(PHP.ini)还有什么没有设置对。 把你的php.ini贴出来大家看看呀 呵呵 你对session的理解有误只有通过页面间链接的传递session才能保持你对t2和t3页面的访问相当于再次访问主机 与第一次的t1访问之间没有任何联系 因此每次访问产生了一个新的session解决方案t2.php与t3.php开头的位置分别加上:session_start(); session_id( 'xxxx' ); p.s.session_start()要写在前面 谢谢~~ 楼上正解t1.php<?PHP //用IP来作为SESSION_IDglobal $TransIp;if ( !empty($_SERVER["HTTP_X_FORWARDED_FOR"]) )//有經過代理主機{ $tempip = split(",", $_SERVER["HTTP_X_FORWARDED_FOR"]); $UserIp = $tempip[0];}else{ $UserIp = $_SERVER["REMOTE_ADDR"];}$TransIp =str_replace(".","",$UserIp);session_id($TransIp); // 用 session_id() 可避免user的cookie沒開的問題session_start();//echo "写入的SESSION值是:".$_SESSION["address"];?> t2.php<?phpinclude_once 't1.php'; // 時隔一年多,已忘了這行有沒有必要加,你可以先不加這行試試看$id = "8881"; //strtoupper($_POST['id']);$password = "12345611111";//$_POST['password'];$_SESSION['userid'] = $id;$_SESSION['password'] = $password;// 以下類推隨你加echo "session_id is : ".session_id($TransIp)." <br>";; //读出来的值是:127001echo "写入的SESSION值是: <br>".$_SESSION['userid']." <br>".$_SESSION['password']; //这里读出来的结果正常。?> t3.php<?PHPinclude_once('t1.php');echo "session_id is : ".session_id($TransIp)." <br>"; //读出来的值是127001echo "读出的SEESION值是: <br>".$_SESSION['userid']." <br>"; //读出来的是空值;echo $_SESSION['password']." <br>"; //读出来的是空值;echo session_id($TransIp)." <br>结束";?> 问题搞定了,小小恭喜一下。看来我的判断是正确的,就是PHP.ini配置的问题,从头配置一次以后就可以了,上面的代码怎么修改都可以实现。谢谢以上热心的TX!!!! 是session的path、domain、expires相关的几个设置用了错误的值吧。 好像不是这几个值得问题,我第一次是用下载包里面默认的php.ini修改的,结果不能用。第二次是用php.ini-dist修改的。就可以了,估计是有我没有注意到的参数吧。 phpwind群发邮件的问题 请教一个 关于页码的动态代码的问题 html中用js调用ASP实现静态页面动态显示,搜索引擎是不是搜索不到啊,,在线等啊!!!!!!!!!!!!! 正则表达式询问,高手解答啊 怎样上传图片? php读mssql数据不完整的问题请教? 关于session的问题!!! 请教有关$HTTP_POST_VARS上传文件的问题? 请给我解释下这个服务器描述语言是什么意思?? 个人类型的订阅号配置服务器时Token验证失败! 在javascript和php中的正则表达式用法如何保持一致? 到底mysql中的sql语句有没有长度限制啊:
加上之后测试,效果一样。
用不用都一样,并且PHP配置中已经让SESSION自动运行了。
所以,可以确认跟这个没有关系。
并且每次写入SESSION时,有两个文件产生,其中一个是SESS_127001,内容就是我写入的内容,另一个文件是空的,0k。
<?PHP
global $TransIp;
if ( !empty($_SERVER["HTTP_X_FORWARDED_FOR"]) )
{
$tempip = split(",", $_SERVER["HTTP_X_FORWARDED_FOR"]);
$UserIp = $tempip[0];
}
else
{
$UserIp = $_SERVER["REMOTE_ADDR"];
}
$TransIp =str_replace(".","",$UserIp);
session_id($TransIp); // 用 session_id() 可避免user的cookie沒開的問題
//echo "写入的SESSION值是:".$_SESSION["address"];
?>t2.php<?php
include_once 't1.php'; // 時隔一年多,已忘了這行有沒有必要加,你可以先不加這行試試看
session_start();
$id = "8881"; //strtoupper($_POST['id']);
$password = "12345611111";//$_POST['password'];
$_SESSION['userid'] = $id;
$_SESSION['password'] = $password;// 以下類推隨你加
echo "session_id is : ".session_id()." <br>";; //读出来的值是:127001
echo "写入的SESSION值是: <br>".$_SESSION['userid']." <br>".$_SESSION['password']; //这里读出来的结果正常。
?>t3.php<?PHP
include_once('t1.php');
session_start();
echo "session_id is : ".session_id()." <br>"; //读出来的值是127001
echo "读出的SEESION值是: <br>".$_SESSION['userid']." <br>"; //读出来的是空值;
echo $_SESSION['password']." <br>"; //读出来的是空值;
echo session_id()." <br>结束";
?>
session_id( 'xxxx' );
session_start();
session_id( 'xxxx' );
session_start(); 还是session_start();
session_id( 'xxxx' ); 都没用,效果是一样的,另外,这样
//session_start();
//session_id( 'xxxx' );
即不指定ID和不使用手动启动,都是一样的,还是只能在当前页输出SESSION。还得有劳大家啊。搞了一天多了,没有效果。
第一方、第三方。总之是没有限制。我怀疑是不是系统配置(PHP.ini)还有什么没有设置对。
只有通过页面间链接的传递session才能保持
你对t2和t3页面的访问相当于再次访问主机 与第一次的t1访问之间没有任何联系 因此每次访问产生了一个新的session
解决方案
t2.php与t3.php开头的位置分别加上:
session_start();
session_id( 'xxxx' ); p.s.session_start()要写在前面 谢谢~~
<?PHP //用IP来作为SESSION_ID
global $TransIp;
if ( !empty($_SERVER["HTTP_X_FORWARDED_FOR"]) )//有經過代理主機
{
$tempip = split(",", $_SERVER["HTTP_X_FORWARDED_FOR"]);
$UserIp = $tempip[0];
}
else
{
$UserIp = $_SERVER["REMOTE_ADDR"];
}
$TransIp =str_replace(".","",$UserIp);
session_id($TransIp); // 用 session_id() 可避免user的cookie沒開的問題
session_start();//echo "写入的SESSION值是:".$_SESSION["address"];
?> t2.php
<?php
include_once 't1.php'; // 時隔一年多,已忘了這行有沒有必要加,你可以先不加這行試試看
$id = "8881"; //strtoupper($_POST['id']);
$password = "12345611111";//$_POST['password'];
$_SESSION['userid'] = $id;
$_SESSION['password'] = $password;// 以下類推隨你加
echo "session_id is : ".session_id($TransIp)." <br>";; //读出来的值是:127001
echo "写入的SESSION值是: <br>".$_SESSION['userid']." <br>".$_SESSION['password']; //这里读出来的结果正常。
?> t3.php
<?PHP
include_once('t1.php');
echo "session_id is : ".session_id($TransIp)." <br>"; //读出来的值是127001
echo "读出的SEESION值是: <br>".$_SESSION['userid']." <br>"; //读出来的是空值;
echo $_SESSION['password']." <br>"; //读出来的是空值;
echo session_id($TransIp)." <br>结束";
?>
看来我的判断是正确的,就是PHP.ini配置的问题,从头配置一次以后就可以了,上面的代码怎么修改都可以实现。谢谢以上热心的TX!!!!
第二次是用php.ini-dist修改的。就可以了,估计是有我没有注意到的参数吧。