0

Cakephp の Cookie について質問があります。Cakephp ビューで Cookie を正常に作成し、ページがリロードされた場合にその Cookie を削除する JavaScript 関数を作成し、その関数が正常に削除されました。
ただし、その 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);
}   

ビューで、更新後にまだ存在する場合は、その Js を使用して Cookie を削除します。

于 2013-05-14T18:01:06.880 に答える