【发布时间】:2015-10-01 13:27:00
【问题描述】:
我有一个设置一些会话值的 PHP 页面:
session_start();
$_SESSION["key"] = "myvalue";
该值已设置,如果我在浏览器中打开我的文件 sessions.php 的新选项卡,我会看到之前设置的值。
<?php
if(!session_id()) { // check if we have session_start() called
session_start();
echo "<br />session start";
}
if (!isset($_SESSION["key"]) ) {
echo "<br />session null";
} else {
echo "ok my session" . $_SESSION["key"] ;
}
?>
如果我从另一个页面打开同一个文件,在同一个选项卡中通过 AJAX 在同一个域同一个文件夹中,我有空会话。
$.ajax({
type: "POST",
url: "/php/sessions.php",
cache: false,
error: function (XMLHttpRequest, textStatus, errorThrown) {}
}).done(function(msg) {
alert(msg) // I get session null
});
编辑: 我正在使用 php-5.6.10-nts-Win32-VC11-x64 和 IIS
EDIT2: 我意识到进行 Ajax 调用的中间页面在同一个域中。所以这就是为什么 Imy 会话为空
【问题讨论】:
-
我没有看到任何将
bcc键设置为$_SESSION的内容。 -
你使用的是哪个php版本?
-
@AjeetKumar PHP 版本和这个有什么关系?
-
/php/sessions.php 是否以某种方式回显 $_SESSION["key"]?
-
抱歉@JonStirling bcc 只是我忘记更改的内容。