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