【发布时间】:2011-05-20 12:01:25
【问题描述】:
我有一个使用会话变量的应用程序没有问题。我在使用 when 的每个页面上的标题之前开始会话,它一直很好,然后当我导航到设置会话变量的页面以外的页面时,似乎突然之间我遇到了未定义的索引错误。 但仅限于某些浏览器。有时会保留会话,有时则不会。
似乎有时没有存储 cookie。我已经使用不同的浏览器进行了检查,有时会存储 cookie,有时不会。
我做了一个实验。我正在使用 Firefox 来使用应用程序,并且我一直在关注存储会话的 tmp 文件夹。我把它清理干净了。使用 firefox,我开始使用该应用程序,使用会话正在使用的所有页面,最后我检查了 tmp 文件夹,其中有一个会话文件。
对 Internet Explorer 进行了完全相同的操作,现在有 7 个不同的会话文件。
我正在使用带有 WAMP 堆栈的 PHP 5.3.0。阿帕奇 2.2.11。在我的 phpinfo() 中启用了会话支持。
我在第一页调用 var dump 并打印出会话数据。在任何后续页面上,会话变量都是空的。
<?php var_dump($_SESSION); ?>
array(0){}
谁能帮我解决这个问题?
更新 - PHP INI 会话设置
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain 82.68.26.169 82.68.26.169
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path c:/wamp/tmp c:/wamp/tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies On On
session.use_trans_sid 0 0
更新 - 解决方案
因为我的应用程序使用 iframe 从另一个域(我创建)中提取页面,所以我试图设置的 cookie 被阻止。设置一个P3P头,问题似乎解决了!
【问题讨论】:
-
我再次阅读了您的问题,发现主题与内容不符。你应该澄清你的问题是什么:值是没有存储在会话中还是没有从数据库中检索到。
标签: php cookies session-variables wamp session-cookies