【问题标题】:set session variables PHP from PhoneGap从 PhoneGap 设置会话变量 PHP
【发布时间】: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

【问题讨论】:

    标签: php ajax


    【解决方案1】:

    使用 session_start(); 在另一个 php 脚本中也

    【讨论】:

    • 嗨。我试过了,但它创建了另一个会话。我搜索了信息,当请求来自 inappbrowser 系统(Phonegap 或类似系统)时,似乎无法创建 php 会话或设置 cookie,即使将 Access-Control-Allow-Origin 设置为 *.所以我不知道如何创建会话和持久化数据
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2016-10-01
    • 2013-02-17
    相关资源
    最近更新 更多