CakePHP:如何阅读Javascript cookie?

时间:2012-10-19 04:07:02

标签: cakephp cookies

首先,我使用Javascript函数创建一个cookie,如下面的代码所示:

function SetCookie(cookieName,cookieValue,nDays) {
     var today = new Date();
     var expire = new Date();
     if (nDays==null || nDays==0) nDays=1;
     expire.setTime(today.getTime() + 3600000*24*nDays);
     document.cookie = cookieName+"="+escape(cookieValue)+ ";expires="+expire.toGMTString();
}

SetCookie('MyCookie','MyValue',7);  

然后,我尝试使用CakePHP读取该值。

        <?php 
        $cookie = $this->Cookie->read('MyCookie');
        if ( $cookie == '' ){
            echo "Cookie not set";
        } else { 
        echo "Value: ".$cookie;
    }


?>

结果显示cookie尚未设置。但是当使用常规Javascript函数读取时结果是不同的。

正确的方法是如何使CakePHP也可以读取由Javascript创建的cookie?

3 个答案:

答案 0 :(得分:0)

看起来你不是在javascript中设置域名。

尝试类似:

document.cookie = cookieName+"="+escape(cookieValue)+ ";expires="+expire.toGMTString() 
    + "; path=/; domain=.example.com";

答案 1 :(得分:0)

我会使用相同的组件编写和阅读cookie,否则你会对逆向工程感到疯狂。

所以我会用

$this->Cookie->write('MyCookie', array('MyValue'=>'7'));

CakePHP documentation

中所述

我希望它有所帮助。

答案 2 :(得分:0)

我遇到同样的问题,最后找到解决这个问题的方法, 试试这个: - &gt;

{{'child-age-'+$index}}

现在您可以在控制器中阅读MyCookie,如

childsAges=[2,5,9]