在PHP Cookie中存储表单值的最佳方法?

时间:2012-04-02 12:13:19

标签: php cookies

表单提交后,我想在PHP cookie中存储几个指定的表单值。我需要在浏览器关闭后保持数据,所以我不想使用会话。我目前的电话如下:

if ($_GET) {
    $params = $_GET;
}

有没有办法从$ _GET到$ _COOKIE设置几个参数,以便以后用户返回时可以使用它们?

4 个答案:

答案 0 :(得分:1)

您仍然可以使用会话来解决问题。只需使用session_set_cookie_params()(请参阅here)将Cookie参数更改为时间> 0(0表示应在浏览器关闭时删除它)并使用session_cache_expire()增加会话缓存生命周期(请参阅here)。

这样做的好处是,即使只更改客户机上的cookie,也无法更改客户端无法更改的数据。

仅限Cookie

另一种方法可能包括一些序列化(例如使用serialize()deserialize()或者自己做一些低复杂度的事情,比如简单地用分隔符连接一些参数)直接存储到参数中具有setcookie()功能的cookie。获取有关here的更多信息。有了它,您可以直接从超全球$_COOKIE读出cookie值。

答案 1 :(得分:0)

查看有关setcookie的PHP文档:http://php.net/setcookie

答案 2 :(得分:0)

你可以使用serialize(),或者对所有$ _GET值进行foreach()循环,并在cookie中设置(每个值的不同cookie)

答案 3 :(得分:0)

您可以使用foreach遍历GET数组并使用其索引名称设置Cookie。 试试这个 -

$expire=time()+60*60*24*30;
foreach($_GET as $k=>$v){
   setcookie($k,$v,$expire);
}

这将设置与GET数组索引相同的cookie名称,并在一个月后过期。