克隆对象不会克隆

时间:2019-07-16 19:54:26

标签: php

我是PHP的新手,我试图从另一个PHP文件中复制一个变量。我正在使用$_SESSION["username"]来共享变量。

我的目标是在第二个文件中克隆此$ username,因此,如果会话值更改,我仍然可以访问$username变量。我正在尝试建立一个强大的登录系统,以便当用户登录时,他们获得一个令牌,我使用其用户名来查找在数据库中分配的令牌。因此,如果用户更改了会话变量,我将无法在数据库中找到该令牌并再次将其重定向到登录页面。

问题在于,每当我删除或更改会话变量时,我就无法再访问$username了,这很有意义。这就是为什么我要克隆它。

$username = $_SESSION["username"];

$username_copy = clone $username;

我希望$username_copy$username相同,但是当我输出结果时,我什么也没得到。

1 个答案:

答案 0 :(得分:0)

会话变量存储在服务器上。用户无法更改它。

这是我的建议:

  1. 具有HTML表单,将其用户名/密码发布到您的PHP脚本中
  2. 在数据库中查找用户名/哈希密码对
  3. 如果用户名/密码返回结果,则可以将其用户名放在会话中:$_SESSION['username'] = $username_from_database;

  4. 假定他们使用用户名$ _SESSION ['username']登录,除非他们注销。他们注销后,致电unset($_SESSION['username']);

这是此过程的非常简单的总结。

会自动为客户端提供一个cookie,其中包含一个随机会话ID。当他们向您的服务器发出请求时,PHP将使用该会话ID查找会话,然后在运行脚本之前将会话的内容(几乎是一个大数组)放入$ _SESSION中。