大家看到的饼干

时间:2011-09-05 08:17:30

标签: php

好的,所以我想在表单提交后在$ _COOKIES中存储一些用户选项。 我的代码是这样的:

    $reason=array_values(array_filter($_POST['reasontext']));
    $str=implode('|',$reason);

    if(!isset($_COOKIE['reason'])){
         setcookie('reason',$str,time()+86400*30*12);
    }elseif(isset($_COOKIE['reason2'])){
         setcookie("reason", "", time()-3600);
         setcookie("reason",$_COOKIE['reason2'],time()+86400*30*12);
         setcookie('reason2', "", time()-3600);
    }else{
         setcookie("reason", "", time()-3600);
         setcookie('reason',$str,time()+86400*30*12);
    }

$reason=array_values(array_filter($_POST['reasontext'])); $str=implode('|',$reason); if(!isset($_COOKIE['reason'])){ setcookie('reason',$str,time()+86400*30*12); }elseif(isset($_COOKIE['reason2'])){ setcookie("reason", "", time()-3600); setcookie("reason",$_COOKIE['reason2'],time()+86400*30*12); setcookie('reason2', "", time()-3600); }else{ setcookie("reason", "", time()-3600); setcookie('reason',$str,time()+86400*30*12); }

基本上,对于一个让我们说的数组:'1'=>'Test1','2'=>'Test2','3'=>'Test3'

选择工具应该为每个用户提供3个不同的选项,具体取决于用户提交的内容为$ _POST ['reasontext']。

嗯,这不是,每个用户都可以清楚地看到另一个用户提交并存储在cookie中的应该是个人的内容。

我想要的是每个cookie'原因'存储在每个用户计算机上并从那里加载不同的用户自定义选项。

任何提示?

提前感谢提醒:)

1 个答案:

答案 0 :(得分:1)

如果您想要将cookie设为私有,您应该:

  1. 使您的Cookie包含唯一ID和签名以验证ID。
  2. 将Cookie标记为安全,因此只能通过HTTPS传输。
  3. 在使用之前检查签名以验证ID。
  4. 使用ID查找数据库中的数据。
  5. 定期重新签发ID和签名令牌,因此很难窃取/伪造。
  6. 如果您希望将数据存储在用户的计算机上而不是传输到服务器,那么各种存储接口之一对此有用(localStorage,sessionStorage等)。但是,您可以在JavaScript中设置它而不是POST的结果,并且该机制的缺点是数据将特定于设置它的浏览器,而使用cookie解决方案,您可能会恢复用户登录时的用户设置。