我想为我的时事通讯创建唯一的链接(一次性点击)。
查看步骤:
-
我将创建一个链接,也可以是一个脚本来创建链接 http://www.example.com/page.php?unique=email@email.com
-
我的订阅者将收到包含此链接的时事通讯。
-
他们点击/访问此时事通讯/链接。
-
如果他们想再次访问它,他们不能,链接将过期,订阅者将被重定向到其他页面 http://www.example.com/expired.php
那么有机会创造这个吗?如何做到这一点?
我有这个代码
<?php
include("variables.php");
$password = trim($_SERVER['QUERY_STRING']);
if($password == ADMIN_PASSWORD) {
// Create a new key
$new = uniqid('key',TRUE);
if(!is_dir('keys')) {
mkdir('keys');
$file = fopen('keys/.htaccess','w');
fwrite($file,"Order allow,denynDeny from all");
fclose($file);
}
$file = fopen('keys/keys','a');
fwrite($file,"{$new}n");
fclose($file);
?>
此脚本位于名为 generate 的文件中.php如果我访问此 URL(http://www.example.com/generate.php?1234 - 1234 是生成唯一 ID 的密码)将生成一个像这样 http://www.example.com/page.php?key525e1200e3a5f9.19949496 的唯一链接,该链接将只有 1 次可用!
现在我想要的是,访问 http://www.example.com/generate.php?1234&s=email@email.com
这会产生一个独特的链接 http://www.example.com/page.php?key525e1200e3a5f9.19949496&s=email@email.com
这是针对受保护的下载页面!我需要将用户电子邮件添加到下载页面,并通过链接生成。's' 是下载页面使用 $_GET['s'] 获取的变量
明白我的意思吗?
我会使用那里的电子邮件来做到这一点。
然后使用以下语句创建一个 PHP 页面。请求 GET(在本例中为电子邮件地址)并检查它是否存在于数据库表中(让我们称之为 - 已访问)。
如果存在,则重定向到所需的页面。
如果不存在,那么...1.) 将其添加到数据库。2.) 显示 1 个时间页面。
当步骤 1 发生时,它将阻止用户再次访问。
如果您想将其限制为一组特定用户 - 因为上述解决方案,人们理论上可以键入任何内容来解决这个问题......
我会与用户一起创建表格,并在名为"访问"的列上执行 IF 状态,如果 1 或更少允许并将 +1 添加到访问列。 如果超过 1 次访问,则重定向。
我希望这是有意义的 - 使用PHP,MySQL DB和简单的IF语句实现也应该相当简单。