0

我对 cakephp 中的 cookie 有疑问。我在 cakephp 视图中成功创建了一个 cookie,并且我编写了一个 javascript 函数来在页面重新加载时删除该 cookie,并且该函数被成功删除。
但在删除 cookie 后,无法再创建相同的 cookie。为什么会这样?

这是我用来创建 cookie 的代码:

$isiCookies=$awb['Awb']['id'].'^'.$awb['Awb']['awb_number'].'^'.$companies[$awb['Contract']['company_id']].'^'.$awb['Address']['address'].'^'.$types[$awb['ContractDetail']['content_type_id']].'^'.$awb['Awb']['colie'].'^'.$kilo.'^'.$manifestDetails[$awb['Awb']['id']];
if(!isset($_COOKIE['manifest_courier']))
{
     setcookie("manifest_courier", $isiCookies, $date_of_expiry, "/");
}
else
{
      setcookie("manifest_courier", rawurldecode($_COOKIE['manifest_courier']).'*'.$isiCookies, $date_of_expiry, "/" );
                }

这是我用来删除 cookie 的 javascript 函数:

$(window).unload(function() {
      Cookies.erase('manifest_courier');  
}); 

请告诉我为什么在页面重新加载时不创建 cookie。谢谢你的帮助。

4

1 回答 1

0

你不需要在视图中做所有事情。首先,确保 Cookie 组件包含在控制器中。

var $components = array('Cookie');

然后,在你的功能中,

$isiCookies = $awb['Awb']['id'].'^'.$awb['Awb']['awb_number'].'^'.$companies[$awb['Contract']['company_id']].'^'.$awb['Address']['address'].'^'.$types[$awb['ContractDetail']['content_type_id']].'^'.$awb['Awb']['colie'].'^'.$kilo.'^'.$manifestDetails[$awb['Awb']['id']]; 

if($this->Session->check('manifest_courier')) 
{
  $this->Cookie->write('manifest_courier',$isiCookies,false,$date_of_expiry);
}else{
  $this->Cookie->write('manifest_courier',rawurldecode($_COOKIE['manifest_courier']).'*'.$isiCookies,false,$date_of_expiry);
}   

在视图中,如果刷新后cookie仍然存在,则使用该Js删除cookie。

于 2013-05-14T18:01:06.880 回答