我正在创建一个非常简单的应用程序,它允许(潜在员工的)推荐人上传他们自己的推荐信。以下是它的工作原理:
- 申请人提交参考电子邮件
- 参考收到一封自动生成的包含唯一URL 的电子邮件(出于安全原因)
- 参考跟随链接,回答安全问题(如果他希望多次访问该站点)
- 上传信
我被困在如何生成一个完全(好的,好的,准会做的)随机 URL 上。更重要的是:我如何确保点击链接会将引用指向正确的页面?每次发送随机 URL 时,我是否必须创建一个包含下拉框的新页面?
感谢您提供有关如何解决此问题的任何建议:)
我假设当你说你想生成一个随机 URL 时,你实际上是在要求生成一个随机字符串。这可能非常简单;这是一些伪代码:
for i = 1 to stringLength
randomString[i] = floor(random() * 26) + 'a'
end
换句话说,生成一个介于 0 到 25 之间的随机数,并将其添加到字符“a”的 ASCII 值中。这将生成一个随机的小写字母字符串,我认为这对于您的任务应该足够了。在 PHP 中,您将使用rand函数。建议使用srand函数为随机数生成器播种当前时间,就像给定链接末尾的示例一样。
至于第二部分;我建议您简化事情;与其生成带有随机 URL 的实际页面,不如简单地将随机字符串传递给查询字符串,例如:
www.mydomain.com/uploadReference.php?id=xxxxxxx
其中 xxxxxxx 是您的随机字符串。然后,您可以验证该字符串并使用 PHP 在数据库中查找它。就您的目的而言,这似乎是迄今为止最简单的方法。
您还可以创建数字和字符的随机排列,以便
hash($previous) // is unique
基本思想是“哈希”函数仅依赖于先前的值,从而创建一个新的唯一值。例如'0' -> '1', '1' -> '2', '9' -> 'a', 'z' -> '10', 'z0' -> '11'。这样的算法相对容易设计
您可以根据当前时间戳的某种形式的哈希或引用的唯一凭据(例如用户名或其他内容)创建唯一字符串。然后,您可以为 dropbox 创建一个页面,该页面将接受 URL 中的唯一字符串,以用于页面上的脚本,该脚本将检索数据库中该字符串映射的相关数据。