日期:2014-05-17  浏览次数:20617 次

php中a href 和直接输入地址的区别
大家谁清楚这两者的区别,貌似在传好多值的时候两者的区别还挺大。
比如传session,
如在客户端不关闭cookie的情况下,192.168.0.1/index.php中定义了一个session['ss']='ss',那么不管是通过 a href 方式打开192.168.0.1/info.php,还是直接在地址栏输入192.168.0.1/info.php,在info.php中都能获得session['ss']='ss'.
但是在客户端关闭cookie,但是php.ini中设置session.use_trans_sid 为1 的情况下就出现问题了,
通过A href打开192.168.0.1/info.php的话能取到session,但是直接在地址栏输入192.168.0.1/info.php就获不到session了,
大家谁知道是怎么回事啊?

------解决方案--------------------
session_start()的时候默认会检查请求过来的http cookie头里有无session id,如果客户端屏蔽cookie,那么session id就无法利用cookie头传递,就会检查url里是否有sid参数(php.ini中设置session.use_trans_sid 为1的作用,url里直接传递session id),有则根据sid参数值(session id)载入相应的session数据。