如果ie设置为禁止所有的cookie。
既,ie菜单,-->internet选项-》隐私中禁掉cookie,则得到的是file2.php显示的是fail,也就是说url这个session变量根本就没有注册成功。如果打开cookie则显示”session is ok“。

解决方案 »

  1.   

    internet选项-〉隐私-〉高级-〉设置都禁止看看,服务器段的所有session变量都失效
      

  2.   

    我感觉也是这么回事.
    听说是在Apache/Linux中可以.
      

  3.   

    同志:
    session内容是服务器端存储,但session号要传给客户端,以便下次请求把session号一并返回.返回的方法可以通过cookie, 也可以通过get. 
    默认是通过cookie传送, 通过设置php.ini可以改为get传送.
    详悉内容参照php手册中session部分
      

  4.   

    在PHP.INI中把
    session.use_cookies = 1
    改成
    session.use_cookies = 0
    再试试
      

  5.   

    大家有疑问的做个试验看看。to telescope(望远镜):
    结果是一样的session is fail!;一直以为session可以不受客户端的影响。重新想了一下NightStone(天行健)的说法。我看了一下server上sess_*这个session的SID中存储的内容,就是这个session变量url的值”!file2.php“,现在我在2台freebsd,4.6.2 和4.7系统下和linux as 2.1下的测试,效果都是一样的,我原先看的帖子意思是指如果禁止session use cookie,也就是 telescope(望远镜)的设置方法或客户端都禁止cookie,则上述生成的goto test2.php的链接后面会自动跟一个SID的变量名/值对,但现在的效果不是,同时server端的处理程序会发现所有的session变量都失效。
    如果我把在server上存储的/tmp/sess_*这个文件用*部分也就是SID放到url?PHPSESSID=*处,则session变量会恢复;
    后来我看了一下php.ini这个文件,看到一个session.use_trans_sid = 0我把这个置为1.这时客户端的所有url后缀会自动增加一个PHPSESSID=*变量。这下明白过来了,NightStone(天行健)的说法是正确的,但很含糊,和php的manual一样。
    同时我发现session也不安全,我在一些多人的虚拟主机下通过目录函数取得一些别人站点的PHPSESSID名,把它附在url后面,则有些可以直接通过授权。包括proxy中的日志也可以取得这个PHPSESSID。