ThinkPHP URL自己带上参数PHPSESSID

碰到个问题,ThinkPHP项目程序本地测试没问题,传到服务器后第一次访问,页面的所有URL会自己带上类似?PHPSESSID=28954583914413546c6e881cfa7c8117 这样的参数,再点击刷新下页面后访问才正常。

浏览器并没有禁止cookie,本地访问正常也证实了这点,第一猜想是服务器的环境配置与项目代码某些地方冲突所影响。

检测了服务器的关于cookie的配置对比本地的,发现session.use_trans_sid这个项的配值是不同的,本地关闭,服务器是开着的。

PHP中的会话在默认情况下是使用客户端的cookie来保存session_id的,所以当客户端的cookie出现问题的时候就会影响会话了。其实会话不一定必须依赖cookie,当客户端的cookie被禁用或出现问题时,PHP会自动把session_id附加在URL中,这样再通过 session_id就能跨页使用会话变量了。但这种自动的附加也是有一定条件的,首先,在php.ini文件中的session.use_trans_sid = 1或者编译时打开了--enable-trans-sid选项,其次,运行PHP的服务器必须是UNIX/Linux系统,Windows操作系统不具备此项功能。

上面的引用就说明了这点,在linux系统下,在session.use_trans_sid开启的时候,导致项目会自己加上PHPSESSID参数来达到跨页会话。

最后解决是:ini_set('session.use_trans_sid', 0);
//在项目代码初始化的位置加入这句

其实还有个怀疑,可能项目某配置出现问题。待查。

Ps,这问题也反面教了件事,在处理跨页会话跨域会话的时候,session.use_trans_sid或许能起到奇效。

网站设计师必备的浏览器测试工具

虽然偶是程序员。。

 

包括:Firefox,Opera,IE和Safari,甚至一些更偏门的浏览器,如: Dillo, Epiphany, Flock,Galeon, Konqueror, Seamonkey等。你可以选择分辨率为640-1600,颜色深度8-32位,开启JavaScript,Java和Flash支持等。

跨浏览器兼容性是网页设计要解决的最复杂的问题之一。web标准虽然能够保证一定的统一性,但是没有浏览器是完美的,你仍然需要花点力气保证你的网页浏览者能够浏览你的网站。

你无法预知访问你的网站的人使用的是什么浏览器和操作系统。不同的浏览器和操作系统使用的字体可能不一样。某些平台可能无法识别一些字体大小,又可能没有安装这些字体。

根据2007.1.10 W3Counter 的统计,全球范围内的浏览器使用情况是,IE家族浏览器占主导,共占约66%。位居第二的是Firefox,25%左右。Internet Explorer 6约一半的占有率,对于一些网页开发者和黑客来说是十分方便的。

事实上,浏览器的统一性是很难处理的,要处理好它,你要知道问题所在,知道不同浏览器的特点,所以在你的页面完成前,你需要在不同的浏览器上测试你 的页面。为此你想到的可能的办法是安装各种各样的浏览器来测试,以下向你介绍几种基于Web的浏览器测试服务,使你不用安装多种浏览器也可以在不同平台上 测试你的网页。

IE Web Renderer

IE Web NetRenderer 能够帮你测试你的页面在IE5.5,6,7中的显示效果。

Browsershots

这个工具可以帮你测试你的网页在各种浏览器中的显示,包括:Firefox,Opera,IE和Safari,甚至一些更偏门的浏览器,如: Dillo, Epiphany, Flock,Galeon, Konqueror, Seamonkey等。你可以选择分辨率为640-1600,颜色深度8-32位,开启JavaScript,Java和Flash支持等。

Litmus

Litmus 提供约30种浏览器测试,其中有17种基于Windows平台,有6种基于Mac OS X,剩下还有其它的搭配,此外Litmus还提供了一个版本管理工具。但使用Litmus的费用比较贵,一个月要39美元。

Browser Photo

Browser Photo提供了Windows,Mac,Linux平台的IE,Opera,Firefox,Safari的测试服务,总共24种搭配。其费用也是比较贵的,一次性使用需要支付15美元,或者一个域名一年150美元无限使用。

Browsrcamp

Browsrcamp提供Safari 2.0.4全屏和五种分辨率测试服务,是免费的。另外它也提供Mas OS X上的Camino, Firefox, Flock, iCab, Mozilla, Netscape, OmniWeb, Opera, Safari, SeaMonkey 和Shiira等多种浏览器的测试,但前提是你需要有一个VNC客户端,一条相对快的网线,和支付3美元/2天或者99美元/年的费用。

Browsercam

使用Browsercam需要一个昂贵的VNC客户端。其提供超过70种浏览器,基于Linux, Win, Mac和移动设备操作系统BlackBerry, Win Mobile等多种平台的测试服务。Browsercam的收费有多种模式,支付费用由20到1000美元/月。不过,在Browsercam注册后24 小时内是可以免费使用的。

BrowserPool

BrowerPool也提供了VNC接入。在BrowserPool里,提供了多种操作系统和浏览器的组合,费用为40美元每月或者477美元每年,它也提供了一些免费的试用帐号。