【发布时间】:2014-02-27 20:12:56
【问题描述】:
我授权网站的付费会员在 30 天内与非会员分享优质内容。这是我想要完成的任务:
首先,订阅者填写表格以生成发送给好友的电子邮件,该电子邮件会生成内容登录页面的 URL。因为我不希望他们轻易能够操纵它,所以我所做的只是将一个 base64 编码的日期附加到着陆页 URL。
$url = "http://www.example.com/video_landing_page.php?" . base64_encode(date('Y-m-d'));
收件人会收到一个类似于http://www.example.com/video_landing_page.php?MjAxNC0wMi0yNg==的链接
在登录页面上,我解析了 url 以获取查询并对其进行解码:
$url = $_SERVER['PHP_SELF'];
$url_components = parse_url($url);
$query = $url_components['query'];
$decodedQuery = base64_decode($query);
现在,如果自创建 url 30 天后,我想显示一条错误消息,这就是我卡住的地方。我已经尝试过这样但没有得到我需要的东西:
if ((strtotime($decodedQuery) + strtotime('+30 Days')) > date('Y-m-d){
Display error Message
} else {
Display Success Message
}
但计算出来的结果并不正确。有任何想法吗?或者有没有更好的方法来做到这一点?
【问题讨论】:
标签: php base64 strtotime date-math