Cookie Helper
Cookie Helperファイルには、クッキーの操作を支援する関数が含まれています。
このヘルパーの読み込み
このヘルパーは、以下のコードを使用して読み込まれます。
<?php
helper('cookie');
利用可能な関数
以下の関数が利用可能です。
- set_cookie($name[, $value = ''[, $expire = ''[, $domain = ''[, $path = '/'[, $prefix = ''[, $secure = false[, $httpOnly = false[, $sameSite = '']]]]]]]])
- パラメータ:
$name (
array|Cookie|string
) – クッキー名、またはこの関数で使用可能なすべてのパラメータの連想配列、またはCodeIgniter\Cookie\Cookie
のインスタンス$value (
string
) – クッキー値$expire (
int
) – 期限までの秒数。0
に設定すると、ブラウザが開いている間のみ有効になります。$domain (
string
) – クッキーのドメイン(通常は: .yourdomain.com)$path (
string
) – クッキーのパス$prefix (
string
) – クッキー名のプレフィックス。''
の場合、**app/Config/Cookie.php**からのデフォルト値が使用されます。$secure (
bool
) – HTTPS経由でのみクッキーを送信するかどうか。null
の場合、**app/Config/Cookie.php**からのデフォルト値が使用されます。$httpOnly (
bool
) – JavaScriptからクッキーを隠すかどうか。null
の場合、**app/Config/Cookie.php**からのデフォルト値が使用されます。$sameSite (
string
) – SameSiteクッキーパラメータの値。null
の場合、**app/Config/Cookie.php**からのデフォルト値が使用されます。
- 戻り値の型:
void
備考
v4.2.7より前は、バグにより
$secure
と$httpOnly
のデフォルト値はfalse
であり、**app/Config/Cookie.php**からのこれらの値は使用されていませんでした。このヘルパー関数は、ブラウザクッキーを設定するためのより分かりやすい構文を提供します。この関数は
CodeIgniter\HTTP\Response::setCookie()
のエイリアスであるため、使用方法についてはResponseライブラリを参照してください。備考
このヘルパー関数は、
Services::response()
が返すグローバルなレスポンスインスタンスにブラウザクッキーを設定するだけです。したがって、別のレスポンスインスタンスを作成して返す場合(例:redirect()
を呼び出す場合)、ここで設定されたクッキーは自動的には送信されません。
- get_cookie($index[, $xssClean = false[, $prefix = '']])
- パラメータ:
$index (
string
) – クッキー名$xssClean (
bool
) – 戻り値にXSSフィルタリングを適用するかどうか$prefix (
string|null
) – クッキー名のプレフィックス。''
に設定すると、**app/Config/Cookie.php**からのデフォルト値が使用されます。null
に設定すると、プレフィックスは使用されません。
- 戻り値:
クッキー値、または見つからない場合はnull
- 戻り値の型:
mixed
備考
v4.2.1以降、3番目のパラメータ
$prefix
が導入され、バグ修正により動作が少し変更されました。アップグレードの詳細を参照してください。このヘルパー関数は、ブラウザクッキーを取得するためのより分かりやすい構文を提供します。この関数は
CodeIgniter\HTTP\IncomingRequest::getCookie()
と非常によく似た動作をしますが、**app/Config/Cookie.php**で設定した可能性のあるConfig\Cookie::$prefix
もプリペンドします。使用方法の詳細についてはIncomingRequestライブラリを参照してください。警告
XSSフィルタリングの使用は、推奨されません。XSS攻撃を完全に防ぐことはできません。
esc()
をビューで正しい$context
と共に使用することをお勧めします。
- delete_cookie($name[, $domain = ''[, $path = '/'[, $prefix = '']]])
- パラメータ:
$name (
string
) – クッキー名$domain (
string
) – クッキーのドメイン(通常は: .yourdomain.com)$path (
string
) – クッキーのパス$prefix (
string
) – クッキー名のプレフィックス
- 戻り値の型:
void
クッキーを削除できます。カスタムパスやその他の値を設定していない限り、クッキー名のみが必要です。
<?php delete_cookie('name');
この関数は、
value
パラメータとexpire
パラメータがない点を除いて、set_cookie()
と同一です。これは、
Services::response()
が返すグローバルなレスポンスインスタンスに、クッキーを削除するためのブラウザクッキーを設定するだけです。備考
set_cookie()
を使用する場合、value
が空文字列に設定され、expire
が0
に設定されていると、クッキーは削除されます。value
が空でない文字列に設定され、expire
が0
に設定されている場合、クッキーはブラウザが開いている間のみ有効です。最初の引数に値の配列を渡すか、個別のパラメータを設定できます。
<?php delete_cookie($name, $domain, $path, $prefix);
- has_cookie(string $name[, ?string $value = null[, string $prefix = '']])
- パラメータ:
$name (
string
) – クッキー名$value (
string|null
) – クッキー値$prefix (
string
) – クッキープレフィックス
- 戻り値の型:
bool
Services::response()
が返すグローバルなレスポンスインスタンスで、名前でクッキーが存在するかどうかを確認します。これはCodeIgniter\HTTP\Response::hasCookie()
のエイリアスです。