php - 页面与页面之间的 session 不同的问题

标签 php mysql ajax session popup

好的,

所以我在我的网站上设置了 session ,但遇到了一些非常奇怪的问题,我花了大约 2 天的时间试图找到答案,但没有成功。

所以我有我的index.php,当您访问该网站时, session 正常工作,从这里它会检查您是否已登录( session 已设置),如果是,它会将您移至另一个屏幕,并且将使用ajax查询来更新页面。

如果你没有登录,它会弹出一个较小的窗口(登录框),当你登录时,这个小窗口会调用它的创建者窗口,表示用户已经正确登录,并设置 session 。针对问题:

session 适用于:index.php、ajax_request.php(当它通过ajax从index.php调用时)、popup_window.php(当它从index.php弹出时)。

session 不起作用:任何其他时间,这包括与index.php位于同一目录中的php文件,甚至包括ajax_request.php和popup_window.php(当它们未被调用时)索引.php

** 请注意,popup_window.php 使用 openid 进行登录,它被重定向到 openid 提供者,然后重定向回来(不过我认为这并不重要?)。

为了调试这个,我设置了自定义 session 处理程序,将 session 插入到 mysql 数据库中,执行此操作后,我注意到它正在为这些不同的场景创建单独的 session 和 sessionid。我对此很困惑?据我所知,所有 session 选项都设置为默认值,除非我的虚拟主机做了一些奇怪的事情?

为什么我的应用程序总是创建单独的 session ,而不是为同一用户保留相同的 session ?多个选项卡中的 session 是相同的,对吗?

我确实启动了 session_start();在每个页面实例中。 我尝试过使用 'ini_set("session.use_cookies", 1);'和'session_set_cookie_params(0,“/”,“www.domain.com”);'

我可以在index.php和test.php中拥有完全相同的代码,将它们放在同一目录中,但它们仍然有不同的 session ?

任何帮助将不胜感激!

谢谢,乔什

最佳答案

如果您使用 Apache,您可以进行重写,将 domain.com 重定向到 www.domain.com。

以下是如何通过修改 .htaccess 文件开始:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=302,NE,L]

标志的一些解释:

“[NC]”=忽略大小写

“R=302”= 给出响应状态 302

'NE' = 不要对 url 参数进行编码(如果您在 apache 对 url 字符串进行双重编码时遇到问题,这是可选的)

关于php - 页面与页面之间的 session 不同的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6786510/

相关文章:

javascript - Jquery $.Deferred 不传递参数

PHP fatal error : Call to a member function find() on a non-object however my function work

php - 我想添加一个当我的用户失去互联网连接时显示消息的 facebook 功能

c# - 在C#中解密PHP加密字符串

javascript - 从php到javascript解析变量的问题

php - 如何最好地构造这个MySQL数据库

css - 动态居中更新进度 Gif

mysql 插入查询数据类型

mysql - 如何修复字段中的错误 #1054 未知列

javascript - AJAX post请求和字符串连接