2

我希望能够生成这样的 URL 变量:

http://example.com/195yq
http://example.com/195yp
http://example.com/195yg
http://example.com/195yf

这些变量将与 MySQL 记录集匹配,以便我可以将其拉出。在创建该记录集时,我希望为其创建此密钥。

我怎样才能做到这一点?做这个的最好方式是什么?有没有我可以使用的现有课程?

谢谢大家

4

4 回答 4

0

这可以通过以下几种方式非常简单地完成:

  • 使用哈希,例如MD5。(会很长)
  • Base-64编码特定的 ID 或数据

如果您问是否有任何东西已经对 MySQL 记录执行此操作,我不确定您是否会发现一些设计方面的东西,数据在概念上确实与您网站中的 URL 相距甚远,即使在像 Grails 这样的框架中。大多数人甚至不尝试将前端和数据访问功能打包成一个单独的部分。

于 2009-06-30T19:49:46.170 回答
0

您将在什么情况下使用它?为什么不只传递 post 变量?它更加安全和整洁。您仍将完成 url 中的数字,例如 id=195yq,并且有一种方法可以通过配置 php.ini 文件来隐藏它们。

我希望这对你有帮助。

请记住这一点。当您在地址栏中传递变量时,某人很容易更改变量,并访问您可能不希望他们访问的信息。

于 2009-06-30T19:52:47.287 回答
0

在您提供的示例中,您似乎正在对数字主键进行 base-64 编码。这就是我会这样做并且过去已经这样做的方式,但我不确定它是否比明文传递 ID 更好,因为 base-64 解码是微不足道的。

于 2009-06-30T19:53:33.697 回答
0

基本上,您需要某种散列函数。

这可以是 SHA-1 函数、MD5 函数(如 altCogito),或者使用记录中的其他数据并对其进行编码。

你认为你会有多少记录?选择解决方案时要小心,因为散列函数必须足够大才能很好地覆盖您,但如果太大,您会创建一个比您需要的更大的数据库。我使用了 SHA-1 并根据需要截断为 64 位或 32 位。

另外,看看 REST。考虑到 URL 可能不必如此神秘......

于 2009-06-30T19:54:59.233 回答