某IP访问站点无法存储SESSION变量,第一次遇到这样怪异的问题。

时间:2022-03-09 21:01:15
请先看代码,测试用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缓存文件夹,还特么的有缓存文件,这是什么什么情况,实在是搞不懂。

请大哥大姐、大侠小虾们帮帮忙吧,实在是崩溃了!!!拜谢!

11 个解决方案

#1


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

#2


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

#3


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

#4


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


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

#5


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


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

#6


该回复于2012-07-07 12:29:10被版主删除

#7


已經測試,沒有問題。

#8


与网络是不可能有关系的,难道你的包还能半路让人把COOKIE去掉了?

很明显你浏览器没保存COOKIE,你抓包看看你的请求是不是每次没带COOKIE。

#9


引用 8 楼  的回复:
与网络是不可能有关系的,难道你的包还能半路让人把COOKIE去掉了?

很明显你浏览器没保存COOKIE,你抓包看看你的请求是不是每次没带COOKIE。


为了排除系统原因,我特意安装了CentOS6.2系统,结果一样无法正确运行页面,COUNT值还是1,ID变来变去。

请问你说的抓包 怎么抓呢?

#10


噢,神啊 你为什么要这样捉弄我们屌丝...

换了系统也无法正常工作.count值是1?也就是你刷新了他都没变化?

#11


引用 10 楼  的回复:
噢,神啊 你为什么要这样捉弄我们屌丝...

换了系统也无法正常工作.count值是1?也就是你刷新了他都没变化?


是的,现在问题解决了,原因是路由问题!!给路由升级后就没问题了! 但这情况也太诡异了,百度、网易、等所有网站登录都没问题,唯有这个页面不行!

#1


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

#2


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

#3


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

#4


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


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

#5


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


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

#6


该回复于2012-07-07 12:29:10被版主删除

#7


已經測試,沒有問題。

#8


与网络是不可能有关系的,难道你的包还能半路让人把COOKIE去掉了?

很明显你浏览器没保存COOKIE,你抓包看看你的请求是不是每次没带COOKIE。

#9


引用 8 楼  的回复:
与网络是不可能有关系的,难道你的包还能半路让人把COOKIE去掉了?

很明显你浏览器没保存COOKIE,你抓包看看你的请求是不是每次没带COOKIE。


为了排除系统原因,我特意安装了CentOS6.2系统,结果一样无法正确运行页面,COUNT值还是1,ID变来变去。

请问你说的抓包 怎么抓呢?

#10


噢,神啊 你为什么要这样捉弄我们屌丝...

换了系统也无法正常工作.count值是1?也就是你刷新了他都没变化?

#11


引用 10 楼  的回复:
噢,神啊 你为什么要这样捉弄我们屌丝...

换了系统也无法正常工作.count值是1?也就是你刷新了他都没变化?


是的,现在问题解决了,原因是路由问题!!给路由升级后就没问题了! 但这情况也太诡异了,百度、网易、等所有网站登录都没问题,唯有这个页面不行!