!!!等待急救,关于SESSON跨页传递的问题!!!100分 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
tmran 2008-10-04 02:36:46 我在本机调试PHP使用SESSION的问题,但是,死活就是只能在自身网页读出来,跨页就不能读出来,我写了三个文件:
t1.php
<?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沒開的問題
//echo "写入的SESSION值是:".$_SESSION["address"];
?>
t2.php
<?php
session_start();
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
session_start();
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>结束";
?>
其他资讯:
我设定的SESSION保存目录是C:/php5/temp,所以,第一次运行t2.php的时候,C:/php5/temp/下面会生成两个文件,其中一个是sess_127001 //用写字板打开,里面的内容是:userid|s:4:"8881";password|s:11:"12345611111";
sess_oehm3m8lp57le2a8v9569ms6m0 文件大小为0;
刷新t3.php,又会生成文件,sess_him2nsmhi9dsep8djnmn0vhmc7
简单说,每次刷新t2.php和t3.php的时候,都会多一个0字节的文件产生,文件名随机。
为什么t3.php不能读到值呢?
补充资料:
1、操作系统为windowsXP;
2、PHP版本为PHP5;
3、PHP读写MYSQL数据库正常。
4、phpinfo的资料显示有关SESSION的部分如下:
Session Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx
Directive Local Value Master Value
session.auto_start On On
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure On On
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path C:/php5/temp/ C:/php5/temp/
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0