正确使用$ _SESSION

时间:2017-05-04 00:13:21

标签: php session

我正在开发一个应用程序,其中包括一个Web应用程序和一个移动应用程序,可以将请求发送到Web应用程序使用的一些相同的PHP脚本。

当用户成功登录时,Web应用程序会在$ _SESSION变量中存储一些信息,并在与其他网页关联的脚本中使用该信息。每个脚本在开始时都有一个session_start()调用。一切正常。

然而,当移动应用程序登录时(使用与Web浏览器相同的脚本),似乎$ _SESSION内容在我将响应发送回移动应用程序后仍无法生存,因为它不在那里当移动应用程序向我发送任何进一步的请求时。

移动应用程序将其请求作为https:// url直接发送到我的php脚本,并包含适合脚本的各种参数。它还将HTTP_USER_AGENT设置为允许我识别请求来自移动应用程序而非Web应用程序的值。

这是预期的行为吗?

[编辑]我被要求提供相关代码。其中有很多,但这里是登录脚本中发生的事情的片段。

$_SESSION['SessionID'] = $sessionid['id'];
$_SESSION['LoggedIn'] = true;
$_SESSION['UserName']=$username;
$_SESSION['UserRole']=$role

当然在这之前有一个session_start()。

我的许多脚本都可以访问此信息。最常见的用途是检查用户是否使用以下代码登录:

if ($_SESSION['LoggedIn'] !==true) {
   < return an error >
}

再一次,所有这些脚本都在顶部有一个session_start。

上述代码在从Web浏览器连接时工作正常,但在从移动应用程序连接时始终返回错误。在LoggedIn检查之前立即打印出$ _SESSION数组,显示$ _SESSION为空。

0 个答案:

没有答案