表单提交后,我想在PHP cookie中存储几个指定的表单值。我需要在浏览器关闭后保持数据,所以我不想使用会话。我目前的电话如下:
if ($_GET) {
$params = $_GET;
}
有没有办法从$ _GET到$ _COOKIE设置几个参数,以便以后用户返回时可以使用它们?
答案 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名称,并在一个月后过期。