管理员访问编辑任何用户的配置文件-会话问题


Admin access to edit profile of any user - Issue with session

我制作了一个PHP应用程序,它将被许多用户使用。当用户登录时,我创建一个会话,并在会话中保留用户id和其他一些详细信息。当用户编辑他的配置文件时,有一些ajax请求。所以我不会暴露用户id。但我总是指的是会议。即使当用户保存他的配置文件时,控制器也会从会话中获取id,然后将其传递给模型。

现在有一个管理员,他应该能够查看/编辑任何配置文件。这就完成了。我有一个管理页面与用户表。当他点击任何玩家时,它会转到另一个控制器,为该用户创建会话,然后管理员可以编辑配置文件。任何来自管理页面的请求,会话首先被擦除,保持admin变量活动,然后添加用户会话。

问题:当管理员试图一次查看多个配置文件时,他可以这样做。但是当管理员试图同时编辑多个配置文件(为每个用户打开新的浏览器选项卡)时,它会失败,因为他打开的最后一个选项卡为该特定用户设置了新会话。

如何克服这种情况?我有什么选择?

我不想在所有url上附加用户id。

简短的回答:

如果它是在管理面板下,你可以通过一个用户的id,这是安全的,你信任你的管理员,对吗?

长答案(我自己的想法):

存储用户的引用唯一id,并将其与会话变量配对。例如:

$_SESSION['editing_users'][YOUR_USER_ID] = uniqid();

然后打印到表格中

提交表单后,您应该获得变量,通过带有隐藏属性的输入传递。在会话数组中找到唯一的id,并从键中获取目标用户的id。