【问题标题】:How do I access/use the generated GUID in the whole project?如何在整个项目中访问/使用生成的 GUID?
【发布时间】:2015-02-09 02:52:29
【问题描述】:

我正在处理一个 PHP 和 HTML 项目,并且有两个场景。

场景 1

用户生成一个带有识别用户的 GUID 的 URL。 GUID 存储在数据库中。

场景 2

如果用户使用已经生成的 GUID 访问页面,我希望能够从 URL 获取 GUID 并在我的整个项目中使用它。

用户的 URL 如下所示

http://localhost/mini/album/index/GUID eg http://localhost/mini/album/index/6957da07-7cd0-4f0e-a300-fa9ecdf79d0a

我知道如何从 url 获取 guid 以及用户何时生成新的 guid,但是只要用户访问该页面,我应该将其临时存储在哪里?我正在考虑使用全局变量、HTML5 本地存储或者是否可以为此使用会话。您认为最好的解决方案是什么?您还有其他建议吗?

【问题讨论】:

  • 为什么你不使用 session_start() ?浏览器关闭时会话结束。
  • PHP 会话将是要走的路。就像 CarcaBot 说的那样使用 session_start() 然后设置 var: $_SESSION['GUID'] = $guid

标签: php session guid user-registration


【解决方案1】:

查看PHP Sessions,以及一些可能的security problems,尤其是在将GUID 添加到URL 时。

<?php
session_start()
$_SESSION['GUID'] = get_guid();
....
echo "GUID is {$_SESSION['GUID']}";

如果它用于识别用户,它通常应该不可见/不能被客户端修改。保存 HTML5 LocalStorage 和 Cookie 以用于更琐碎的事情,例如首选项或缓存数据。

【讨论】:

    【解决方案2】:

    使用 apache 重写。在您的 .htaccess 文件中,执行以下操作:

    RewriteEngine On
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule ^mini/album/index/([A-Za-z0-9-]+)$ /php_script_that_you_use_for_saving_a_guid.php?GUID=$1 [QSA,L]
    

    其中 GUID 是 $_GET 变量。获取并存储它

    将“php_script_that_you_use_for_saving_a_guid.php”重命名为您将用于保存 GUID 的实际文件和路径等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      • 2022-10-17
      相关资源
      最近更新 更多