0

这是我想要实现的目标:

我希望能够显示网站的主页。但是,此主页所做的只是允许您输入电子邮件地址。然后它会向您发送一封电子邮件,其中包含一个独特的链接,可以通过主页访问实际内容。它不需要任何实际帐户或登录名,只需拥有唯一的电子邮件链接。(它也只会发送到 .edu 地址)。

实现这一点的最佳方法是什么?

4

1 回答 1

2
  1. 创建一个 SQL 表,将用户名映射到键码。
  2. 提交首页表单时,随机生成一个16个字母的AZ,az,0-9个字符的字符串。
  3. 将 SQL 行插入到将用户名映射到 16 个字母字符串的表中(使用 PDO)。
  4. 通过电子邮件向用户发送链接,例如 example.org/login/email@email.com/rAnDomStRiNgHeRe
  5. 使用 ModRewrite 设置 .htaccess 以将 example.org/login/([^/])+/([A-Za-z0-9])+ 映射到 example.org/verify-login.php?email=$1&code=$2
  6. 创建 verify-login.php,它使用 PDO 在数据库中查询表中的任何条目,并将给定的电子邮件映射到给定的代码。
  7. 如果匹配,则将用户带到实际内容。
  8. 如果您需要保护内容,请使用电子邮件和密钥存储 cookie,然后执行数据库查找以确保 cookie 电子邮件和 cookie 密钥在数据库中相互映射。必须在要保护的每个单页上进行此检查。

附带说明一下,最好对 email:key 进行 base64_encode 编码并在 URL 中使用它。相应地更新 .htaccess。然后,在 verify-login.php 中,解码 base64 字符串,将其拆分为电子邮件和密钥,然后执行检查。

于 2012-11-17T00:40:04.410 回答