使用PHP的URL变量使Cookie过期

时间:2017-02-14 21:50:36

标签: php cookies time setcookie

我正在开发一个新产品/网站,在网站发布之前,应该关闭主页(不是子页面)。应该从URL中读取启动日期:

website.com/some-subpage?launch=0421

在此示例中,访客可以从4月21日(21日)访问该主页。

为此,我想这样做,如果有人访问“some-subpage”(或任何其他子页面,无所谓),cookie应该像这样设置:

  • Cookie-Name:启动
  • Cookie-Value:0421
  • Cookie过期:在发布时,所以在这种情况下是4月21日

这是我到目前为止所做的:

<?php
if ($_GET['launch'] != "null") {
date_default_timezone_set('Europe/Berlin');
$launchdate = $_GET['launch'];

$launchdatenew->format('*********'); // Here I probably need to convert the "0421" to a readable time, but I dont know how
// or probably using this version?
$launchdatenew = date_format(date_create_from_format('m d', $launchdate), '*********'); // Here I probably need to convert the "0421" to a readable time, but I dont know how

setcookie("Launch", $launchdate, $launchdatenew, "/"); // The Cookie-Name should be "Launch", the value "0421", and it should expire when the launch starts

} ?>

你能帮我完成这个吗?我不知道如何将“0421”转换为可以设置为cookie的到期日期的新格式。不幸的是,我的PHP技能几乎为零。

非常感谢! 再见, 伊姆雷

1 个答案:

答案 0 :(得分:1)

我将告诉您如何根据expire中的日期在该Cookie上设置$launch

假设总是采用格式&#39; mmdd&#39;然后用一些简单的字符串操作......

$launchDateStr = '0421';

$launchTime = mktime(0, 0, 0, substr($launchDateStr, 0, 2), substr($launchDateStr, 2));

$ttl = $launchTime - time(); //just an example... find seconds between now and launch

setcookie("launch", $launchDateStr, $launchTime, "/");
告诫...这忽略了一年。您不应该信任用户数据。所有这些都可以被欺骗。