我檢查的this question它接受的答案,但沒有幫助如何將POST變量值附加到AJAX中的新SESSION變量並從其他腳本調用它?
我試圖做一個AJAX POST請求請跟隨我的註冊表格中,ajax.php文件將檢查輸入的信息,例如密碼匹配與否,然後將$ _POST變量附加到$ _SESSION變量,以便稍後可以從任何其他頁面調用提交的數據。
Ajax.php
...
if ($everythingValid) {
// add this user to db
$_SESSION["signup_details"] = $_POST;
echo "[email protected]".$core->signupPaymentUrl($package); // tried without this line but didn't work
exit(); // tried without this line but didn't work
} else {
foreach ($errors as $e) print "<br>".$e;
exit();
}
...
,我使用調用文件jQuery代碼是以下:
var form = $('#signup');
$("#submit").click(function() {
$.ajax({
type: "POST",
dataType: 'html',
crossDomain: true,
url: form.attr('action'),
data: form.serialize(),
success: function(response) {
if ("SUCCESS" === $.trim(response.split('@')[0])) {
// user created, redirect to payment page
var paymentUrl = $.trim(response.split('@')[1]);
window.location.href = paymentUrl;
} else {
$("b#signupErr").hide();
$("b#signupErr").html(response);
$("b#signupErr").fadeIn();
}
}
});
});
提交表格後,我順利拿到重定向到付款網址,但是,在訪問我想要使用我的會話的網頁後,我無法弄清楚如何檢索我的會話,但我確定我已經在中包含session_start ajax.php和completeOrder.php並且在打開php標記之前沒有空格。
這裏是我包括在這兩個文件的行:我試圖對的var_dump在ajax.php $ _SESSION變量
if(!session_id()) session_start();
,它看起來不錯。然而,當我的var_dump上completeOrder.php會話變量它表明我NULL
最後這裏是completeOrder.php內容
if(!session_id()) session_start();
require_once("core.php");
$core = new coreOptions();
$email = $_SESSION["signup_details"]["email"];
$password = $_SESSION["signup_details"]["password"];
$package = $_SESSION["signup_details"]["pkg"];
$options = $core->attachOptions($package);
if ($core->registerUser($email,$password,$options,$package))
$core->redirect("registrationCompleted.php");
我們應該如何知道您的'completeOrder.php'文件的功能以及它的外觀? – idmean