视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
php session跳转失效怎么办
2020-11-02 18:29:38 责编:小采
文档

php session跳转失效的解决不过:1、查看“session.save_path”的访问权限并进行修改;2、修改“session.use_trans_sid”和“session.use_only_cookies”的设置问题。

推荐:《PHP视频教程》

一般出现跨页面session失效的情况,基本都跟php的配置有关:

1、session.save_path访问权限不够,或者路径有问题;

2、session.use_trans_sid和session.use_only_cookies的设置问题。

查看php.ini:

发现路径正常,而且文件中也准确记录着session值,因此session.save_path没问题。

接着查看session.use_trans_sid,发现:

解释一下,session的传递有两种方式,一种是基于cookie传递,另一种是基于URL传递。

cookie传递即通过cookie将session信息保存在客户端,之后在向服务器发送请求时会自动带上cookie信息,以便服务器读取。这是常用的方式。

URL传递是在点击跳转的链接后自动添加session信息,如a.php?sessid=...,之后在新页面自动$_GET['sessid']来读取。这个过程是自动且隐藏的,跟用cookie传递一样不知不觉。

而session.use_trans_sid表示是否使用URL方式传递session,所以如果session.use_trans_sid值为0,而用户浏览器又禁用了cookie,就会出现session跨页面失效的情况。

但将session.use_trans_sid设为1后,session还是失效,就要检查session.use_only_cookies,发现:

session.use_only_cookies表示是否只用cookie传递session,所以如果设置为1,即使session.use_trans_sid=1,也还是不会用到URL传递。

因此要将session.use_trans_sid=1,session.use_only_cookies=0,才能开启URL传递方式。

下载本文
显示全文
专题