代码之家  ›  专栏  ›  技术社区  ›  opHASnoNAME

使用Zend框架获取cookie值

  •  4
  • opHASnoNAME  · 技术社区  · 14 年前

    警告:非静态方法zend_controller_request_http::getcookie()不应在中静态调用。

    IAM尝试以下方法获取cookie值:

    $cookieData = Zend_Controller_Request_Http::getCookie($key, $default);
    

    有更好的方法吗?

    2 回复  |  直到 12 年前
        1
  •  17
  •   Vika    14 年前

    getCookie() 方法不是静态的,应在对象上调用它。

    我相信这个代码来自你的控制器,所以它基本上应该是

    $request = $this->getRequest();
    $cookieData = $request->getCookie('someCookie', 'default');
    
        2
  •  2
  •   Chukky Nze    12 年前

    这是一个轻微的旁注,但它可能会很好地帮助避免长时间的无果期。根据我的经验,在zf1和其他框架中,当一个人无法从$\u cookie中检索值时发生的问题主要是因为setcookie太容易使用,忘记添加路径和域,就像这样:

    setcookie('cookiename'、'cookievalue'、$finalexpirationtime'/'、'.yourdomain.com');

    而是这样做:

    setcookie('cookiename'、'cookievalue'、$finalexpirationtime);

    这变得非常烦人,尤其是在使用IP而不是实际域的Windows上工作时。另一个需要注意的是域名前面的点(.)。如手册中所述:仍在实现被否决的RFC2109的旧浏览器可能需要一个引导。匹配所有子域。

    希望这有帮助