-4

这可能是不可能的,但是,请让我问一下!

有没有办法知道是否从电子邮件帐户请求了一个 url?

问题是:一个页面只能通过提供随机验证码来访问。但我想让同一页面可以从电子邮件帐户访问。

所以我的问题是,是否有可能知道请求的网址是否来自电子邮件帐户。

4

1 回答 1

2

你的意思是如果它来自电子邮件?
在这种情况下,你可以做这样的事情

<a href="http://example.com/page?o=email">Click here to go to our website</a>

起源也可以保存在表格中,所以不清楚它是什么。例如来源#1 可以是电子邮件。

<a href="http://example.com/page?o=1">Click here to go to our website</a>

然后得到原点

<?php
switch($_GET['o']) {
  case 'email':
     // Origin is email
  break;

  case '1': // this would probably interfere with true, hence the quotes
     // Origin is email
  break;

  default:
    // No origin; Captcha
  break;
}
?>

对于更安全的解决方案,它可以是在发送电子邮件时生成的授权密钥,然后与链接中的密钥进行比较。

<?php // The page sending the mail
$key = md5(time()); // Or something else, maybe shorten it to fit better in the url

  // Save the key in a table

mail(); // Mail with unique link with ?o=$key in the end
?>

<?php // The page
if(isset($_GET['o'])) {
  // Check if the key exists in the table and delete it because it is used.
}
?>
于 2013-04-09T21:27:31.110 回答