我对PHP还不熟悉,使用session时遇到了问题。我在Javascript中使用AJAX调用一个登录php脚本,在那里我想创建会话并设置一个值。
<?php
ini_set('display_errors', 1);
session_start();
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
$_SESSION['username'] = "username";
?>
我会把响应处理的任务交给JavaScript,并使用AJAX再次调用另一个PHP脚本。 另一个文件如下所示:
<?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);
我查看了类似的SO问题中的答案,但它们并没有帮助到我。有什么想法吗?提前感谢。
$_SESSION['username'] = "username";
应该改为$_SESSION['username'] = $username;
。 - Funk Forty Niner