3
我是PHP新手,无法使用会话。 我使用AJAX从JavaScript调用登录php-script。在那里我想创建会话并设置一个值。PHP:会话变量丢失,会话ID更改(使用Ajax)
<?php
ini_set('display_errors', 1);
session_start();
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
$_SESSION['username'] = "username";
?>
我在javascript中处理响应,并使用AJAX再次调用另一个php-script。其他文件如下所示:
<?php
ini_set('display_errors', 1);
session_start();
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
$username = $_SESSION['username'];
?>
但用户名为空。如果我在两个文件中请求会话ID,则会话ID已更改。从第一个文件发送包含PHPSESSID的响应Cookie。我是否必须在调用第二个脚本的AJAX调用中使用此ID?
更新:由于要求AJAX码:
function callAjax(url, data, successCB, errorCB) {
$.ajax({
url: url,
type: 'post',
data: data,
success: successCB,
error: errorCB
});
}
调用,如:
callAjax(GET_TEMPLATES_PHP_URL, {}, onGetTemplateSuccess, onRessourceRetrievalError);
我如此相似的问题检查的答案,但他们并没有帮助。
任何想法?提前致谢。
检查会话cookie设置。例如如果您的会话设置为'/ foo'子目录,并且您的ajax代码位于'/ bar'中,则Cookie将不可见。 – 2015-02-09 15:16:57
向我们展示Ajax/JS。我看不出这会失败。但是,这个'$ _SESSION ['username'] =“username”;'应该很可能是'$ _SESSION ['username'] = $ username;' – 2015-02-09 15:19:56
@JayBlanchard不应该。错误报告不计为输出。 * Mornin'Ralph * – 2015-02-09 15:23:00