Joomla コンポーネントで Cookie を使用するにはどうすればよいですか?
setcookie( JUtility::getHash('JLOGIN_REMEMBER'), false, time() - 86400, '/' );
誰でもこれがどのように機能するかを説明できますか?
// Get input cookie object
$inputCookie = JFactory::getApplication()->input->cookie;
// Get cookie data
$value = $inputCookie->get($name = 'myCookie', $defaultValue = null);
// Check that cookie exists
$cookieExists = ($value !== null);
// Set cookie data
$inputCookie->set($name = 'myCookie', $value = '123', $expire = 0);
// Remove cookie
$inputCookie->set('myCookie', null, time() - 1);
$expire
価値に関するいくつかのルールtime()
です。$expire == 0
: Cookie の有効期間はブラウザ セッションのものです。$expire < time()
: Cookie が削除されています (有効期限が過去に設定されています)。値をnullに設定することでCookieを削除できますが、明らかにIEはそうしません。ヘッダーが送信される前 (通常は出力がエコーされる前) に Cookie を設定する必要があることに注意してください。
Cookie のキーと値は適切にエスケープする必要があります
セットの値をシリアル化する場合 ( などjson_encode($dataNode)
)、適切なフィルターを使用して後で取得することを忘れないでください。デフォルトはcmd
で、これは aZ、0-9 以外のほとんどすべてを除外し、JSON 構造をクラックします。
// Get cookie data
$encodedString = $inputCookie->get('myCookie', null, $filter = 'string');
// Decode
$values = json_decode($encodedString);
// Encode and Set
$inputCookie->set('myCookie', json_encode($values));