【发布时间】:2020-01-13 01:42:07
【问题描述】:
我在 Phonegap 中创建了一个登录页面。使用数据库登录运行正常,但是当我尝试在 PHP 中创建会话变量时未设置。如果我尝试在服务器上运行正常,这只会在本地(phonegap)中发生。
这是我的 ajax 脚本:
var xhr = new XMLHttpRequest();
xhr.open('POST', url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var res = JSON.parse(xhr.responseText);
console.log(res);
if(callback && res.status != 9){ // status = 9 means session start but not set
callback(res);
} // END IFs
else {
localStorage.clear();
app.checkUser();
} // END ELSE
} // END IF
} // END FUNCTION
这是我的 PHP:
session_start();
$user = $_POST['user'];
$name= $_POST['name'];
$data->session_status = session_status(); // this is to check if session start
$_SESSION['user'] = $user;
$_SESSION['name'] = $name;
$data->id_session = $session_id();
$data->session = $_SESSION; // check if session sets ok
echo json_encode($data);
但如果我调用另一个 php 脚本。这不会重新启动上一个会话
$user = $_POST['user'];
$id_session = $_POST['id_session'];
session_start();
if($user == $_SESSION['user'] && $id_session == session_id()) {
// do somthing...
}
else {
data->status = 9;
}
echo json_encode($data);
这是我的 htaccess 标头集:
Header set Access-Control-Allow-Origin: * // to accept phonegap request
【问题讨论】: