MongoDB登录系统&;PHP中的会话
我在PHP网站上使用MongoDB来保存我的注册用户及其登录信息。到目前为止,一切顺利 当我登录时,我使用以下(简化的): 当我注册时,以下内容:MongoDB登录系统&;PHP中的会话,php,session,mongodb,Php,Session,Mongodb,我在PHP网站上使用MongoDB来保存我的注册用户及其登录信息。到目前为止,一切顺利 当我登录时,我使用以下(简化的): 当我注册时,以下内容: $collection->insert($obj); mkdir("$appDirectory/users/" . $obj["_id"]); $_SESSION["gatekeeper"] = $obj["_id"]; 整个系统运行良好,但有一些问题困扰着我:在会话管理器中查看由此派生的JSON: "{\"gatekeeper\":{\"$
$collection->insert($obj);
mkdir("$appDirectory/users/" . $obj["_id"]);
$_SESSION["gatekeeper"] = $obj["_id"];
整个系统运行良好,但有一些问题困扰着我:在会话管理器中查看由此派生的JSON:
"{\"gatekeeper\":{\"$id\":\"505f1cd25c73959504000000\"}}" (redis)
array(1) { ["$id"]=> string(24) "505f1cd25c73959504000000" } (php var dump - gatekeeper)
如您所见,它将其存储为一个关联数组$id->id
当然,简单地使用gatekeepeer->id会更好
我怎样才能轻易地改变这一点?老实说,我发现它令人困惑,因为这个“$id”让我的PHP有点困惑,也让我困惑
基本上,最烦人的是当我必须找回守门员时:
$gatekeeper = $_SESSION["gatekeeper"];
$userID = $gatekeeper['$id']; //WILL work
$userID = $gatekeeper; //WON'T WORK
只要有:
$userID = $_SESSION["gateID"];
$userName = $_SESSION["gateName"];
....
而不是:
$gatekeeper = $_SESSION["gatekeeper"];
$userID = $gatekeeper['$id'];
$userName = $gatekeeper['name'];
由于$\u会话始终引用同一会话,因此不需要在数组中包含数组
提前谢谢
_id包含MongoId实例
所以,在将其赋值为会话变量之前,需要将其转换为字符串
如下
$_SESSION["gatekeeper"] = (string) $obj["_id"]
伟大的我知道这将是一件非常简单的事情,只是不知道怎么做。
$_SESSION["gatekeeper"] = (string) $obj["_id"]