现有 index.php ,该文件存储了一些诸如用户名,权限之类的信息进去$_SESSION,
然后 index.php 通过 ajax 访问 func.php ,func.php 处理请求后,返回 html 字符串显示在 index.php 指定的区域内。
现在的问题是,我在 func.php 里面,获取不到$_SESSION 信息,如何达成在 func.php 里访问到$_SESSION 的内容这个目的?
哦,忘记说了。同样的代码,在 localhost 下,func.php 是能够访问到$_SESSION。但是上传到公网服务器后就不行了。
请有经验的朋友指教,谢谢!
1
b821025551b 2020-03-12 17:10:02 +08:00
然后 index.php 通过 ajax 访问 func.php
这里的描述应该是 index.php 渲染出来的前端页面通过 ajax 的方式访问 func.php ; 第一反应是你的 ajax 请求没带 cookie,但是你又说 localhost 有效,那么很大可能是权限没配置对,session 根本就没存储下来。 |
2
mokeyjay 2020-03-12 17:10:09 +08:00
“ index.php 通过 ajax 访问 func.php” 是指 index 里面写 curl 发起 ajax 请求 func,还是用户访问 index 后通过用户的浏览器发起 ajax ?
上传到公网服务器后,index 和 func 还在同一个域名 /路径 下吗?你的 session cookie 作用域怎么设置的? |
3
jugelizi 2020-03-12 17:10:16 +08:00 via iPhone
ajax 请求带着 cookie 了吗
|
4
cbasil 2020-03-12 17:15:47 +08:00
这个可能是你服务器 session 目录权限不够,centos 中 session 在 /var/lib/php/session,通过 ls all 查看权限,ps aux|grep php 查看 php-fpm 的 USER 是 root 还是 www,把 /var/lib/php/session 目录权限改为 php-fpm 执行的用户即可。
|
5
chen1164162915 2020-03-12 20:54:20 +08:00
你所讲的 AJAX 是否指 CURL?
|
6
manhere 2020-03-12 21:00:00 +08:00 via Android
对比下 php 是否开启了 session 的 auto start
|
7
gidot 2020-03-12 22:56:45 +08:00
要么你试着先在 index.php 中获取 session id,并用 ajax 传到 func.php ,再从 func.php 头部 sessionstart 之前设置本次的 session id。
|
8
imdong 2020-03-13 10:45:07 +08:00 via iPhone
我怀疑是 cURL,请把 cookie 也传过去…
而且,有必要这样做么?? 同一个站内的话,直接调用不就好了 |
9
ETO 2020-03-13 17:39:17 +08:00
检查一下 cookie 有没有带上去,然后在检查一下服务器上的 session 有没有开启,可以用 session_status()这个函数测试一下,然后再检查一下 session 的文件有没有写入权限。
|