我意识到这个问题已被多次询问,但我还没有找到平面文件版本。
我正在寻找一种在PHP或CGI-PERL中实现以下功能的方法,最好 PHP:
(例如,confirmed_emails.txt)。
我想到的一种方式是某种形式的“选择加入”方式。
如果没有SQL /类似数据,这可能吗?
干杯〜
答案 0 :(得分:3)
这是可能的。
将电子邮件写入temp_emails.txt文件时,请将其打开,如下所示:
$f = fopen('temp_emails.txt', 'a+'); // open for read/write at end of file
fwrite($f, $email); // write the email to the file
fclose($f); // close it
// send new email
他们获得了他们的链接confirm.php?email=xyz@abc.com
// first check if they already confirmed it
$file = file('confirmed_emails.txt');
if(!in_array($email, $file)){
// not in file
$f = fopen('confirmed_emails.txt', 'a+');
fwrite($f, $email);
fclose($f);
}else {
// already confirmed
}
答案 1 :(得分:1)
我认为你可以在不存储任何内容的情况下管理它,即使是在文本文件中也是如此。
当您生成要通过电子邮件发送给用户进行确认的唯一代码时,请通过散列您要发送给它的电子邮件地址来创建它,并获得以下格式的链接:
http://www.example.com/confirm.php?email=<emailaddress>&confirm=<hashedemail>
然后只是根据链接中的哈希重新哈希链接中的电子邮件地址,如果匹配,则表明您已确认电子邮件地址。
(虽然我很好奇为什么你不想将它存储在一个数据库中 - 大概你需要将电子邮件存储在一个数据库中,以便你可以用它们做一些有用的事情?)