设置3个值的cookie,然后在读取时提取3个值

时间:2013-11-29 20:54:33

标签: php variables cookies remember-me

我正在努力记住我的功能,需要这样做:

setcookie(
    "cookie",
"$userid, $token, $date",
time() + (10 * 365 * 24 * 60 * 60)
);

然后我希望能够读取cookie并将每个值分配给php变量:

$user id =
$token =
$date =

有任何帮助吗?我找到了一些例子,但他们不工作。

P.S。忽略缺乏安全性。我正在做这项工作,然后再创建所有哈希等。

编辑:

发现这个:

setcookie("acookie", $username . "," . $userid);

但是无法使用第三个变量

2 个答案:

答案 0 :(得分:2)

就你的cookie而言,一旦设置得当,你可以通过$ _COOKIE超全局访问它们,类似于你如何使用$ _GET和/或$ _POST。

答案 1 :(得分:1)

解决方案1 ​​

你可以这样做(如果你真的只想要一个 cookie):

$cookie_val = $userid . ':' . $token . ':' . $date; 
// Make sure the values don't contain ":" or change to other 
// character that the values don't contain

setcookie("acookie", $cookie_val, time() + (10 * 365 * 24 * 60 * 60));

然后,在您检查cookie值的页面上,您可以这样做:

$cookie_arr = explode(':', $_COOKIE['acookie']);

$user id = $cookie_arr[0];
$token = $cookie_arr[1];
$date = $cookie_arr[2];

解决方案2

此解决方案更容易,我建议您使用此方法。只需制作三个Cookie,例如$_COOKIE['user_id']$_COOKIE['token']$_COOKIE['date'],然后在需要检查其值时,只需通过这些名称调用它们。

// Create cookie
setcookie("user_id", $user_id, time() + (10 * 365 * 24 * 60 * 60));

// Check cookie
$user_id = $_COOKIE['user_id'];

等等......