请先看代码,测试用PHP页面代码如下:<?php session_start();if(isset($_SESSION["Count"])){$count = $_SESSION["Count"];}else{$count=0;}$count++;echo 'Count:'.$count.'<br/>';echo 'ID:'.session_id();$_SESSION["Count"]=$count;?>----------------------------------
毋庸置疑,这段代码是绝对正确的,在本地PHP5.2+APACHE主机上测试结果:
------------------
==第一次刷新页面==
Count:1
ID:60499dfb22e443a89f5f8ef161570fb0
==第二次刷新页面==
Count:2
ID:60499dfb22e443a89f5f8ef161570fb0
==第三次刷新页面==
Count:3
ID:60499dfb22e443a89f5f8ef161570fb0
------------------
然而,当我把这段代码存成网页,上传到我在美国买的一个PHP5.2+APACHE空间上后,问题来了!!用我本地网络访问此页面的测试结果:
------------------
==第一次刷新页面==
Count:1
ID:b8611df96a9371f930d8838c0cbc5d77
==第二次刷新页面==
Count:1
ID:3ae67bfa8cdf1d116e1c763fb8f7e2d8
==第三次刷新页面==
Count:1
ID:e2fc2942aeb87f63ce2253b0e6cc3a4d
------------------看到上面的结果,我第一反应就是PHP.INI中SESSION设置有问题,结果翻来覆去验证很久,又拿本地PHP.INI文件上传覆盖,结果都一样。随后清空FF\IE缓存与COOKIE等,还是一样。又换本网另一台电脑访问,结果依然不行。没办法,这时我只能认为是服务器有问题,随后找服务商解决。服务商托了一天,告诉我服务器并没有问题,他们测试页面时结果是正确的。这时我很生气,我这边明明测试的结果是错误的,你们那边怎么就可以?还能是我网络问题?我马上挂代理IP软件访问我的网站,结果得到了正确的运行结果!!!随后又用某在线代理IP网站进行访问,结果也是正确的!!此时我郁闷了!!这是什么情况?按理说国外服务器IP容易被国内ISP服务商封掉,造成国内无法访问的情况。但是,尼玛这是什么情况啊?明明可以访问,就是每次访问都会产生新的SESSION ID,查看SESSION_SAVE_PATH缓存文件夹,还特么的有缓存文件,这是什么什么情况,实在是搞不懂。请大哥大姐、大侠小虾们帮帮忙吧,实在是崩溃了!!!拜谢!

解决方案 »

  1.   

    另附上面代码测试页面地址:http://wm53.com/click.php
    大家帮忙看看你们访问结果是否正确。
      

  2.   

    我访问是好的,就是慢了些。你这哪里的服务器?让你输出phpinfo 信息。还有就是你这么频繁操作session不好,session是服务器端的。
      

  3.   

    我测试了,你的服务器session是正常的。问题不在服务器 在你自己的网络或者计算机。
      

  4.   


    感谢两位的热心帮助,我现在也知道是我的网络问题,但是为什么会这样呢?我的网络访问其他网站都是正常的,SESSION都可以用。为什么访问这个服务器就不行了?我的网络是电信ADSL宽带,不明白怎么会这样。
      

  5.   


    这个空间主机是在加州,在LUNARPAGES上租的。
      

  6.   

    与网络是不可能有关系的,难道你的包还能半路让人把COOKIE去掉了?很明显你浏览器没保存COOKIE,你抓包看看你的请求是不是每次没带COOKIE。
      

  7.   


    为了排除系统原因,我特意安装了CentOS6.2系统,结果一样无法正确运行页面,COUNT值还是1,ID变来变去。请问你说的抓包 怎么抓呢?
      

  8.   

    噢,神啊 你为什么要这样捉弄我们屌丝...换了系统也无法正常工作.count值是1?也就是你刷新了他都没变化?