首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP会话只适用于某些页面。

问PHP会话只适用于某些页面。
EN

Stack Overflow用户
提问于 2017-06-03 00:42:45
回答 2查看 49关注 0票数 1

这有点奇怪。好的,我正在使用一个会话来了解用户何时登录。当创建用户登录会话时。

我遇到的问题是会话在某些页面上不起作用。当我在索引页面上执行var_dump($_SESSION['u_up']);时,它会显示会话:array(1) { ["u_up"]=> string(7) "example" },但是当我对另一个脚本进行Ajax调用并执行相同的var_dump($_SESSION['u_up']);时,它会返回一个空数组:array(0){}。

有人知道为什么会这样吗?我在两个文件的顶部都有session_start(),但是我的第二个脚本在我的会话中不起作用。任何帮助都是非常感谢的!

这是我的简单Ajax脚本:

代码语言:javascript
复制
//Update to not view tutorial           
$.ajax({
    type: "POST",
    url: 'http://192.168.1.75/php/script.php',
    success: function(data){
        console.log(data);
    }
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-03 01:02:19

好的,所以我不得不将Ajax请求中的url更改为localhost。结果看起来是这样的:

代码语言:javascript
复制
//Update to not view tutorial           
$.ajax({
    type: "POST",
    url: 'http://localhost/php/script.php',
    success: function(data){
        console.log(data);
    }
});

不知道为什么我必须指定localhost,而不是能够指定我的计算机的ip。

票数 0
EN

Stack Overflow用户

发布于 2017-06-03 01:03:01

您正在执行跨域请求,192.168.1.75和localhost不被认为是相同的域,也不共享cookie。

出于安全考虑,跨域请求不包括cookie。如果不发送phpsessid cookie,您将无法检索旧的php会话,这将使您的会话为空。

除此之外,我强烈建议你在未来使用相对路径来避免这样的问题。

代码语言:javascript
复制
$.ajax({
    type: "POST",
    url: '/php/script.php',
    success: function(data){
        console.log(data);
    }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44339192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档