このタイトルはあまり厳密ではありませんが、ドット付き Cookie 名を使用できますが、Cookie に名前を付けます:
。$_COOKIE[‘my.name’] = 1;
実際には、この値は 'my.name' を通じて Cookie 内で見つけることはできず、'my_name':
のみで見つけられます。echo $_COOKIE[‘my_name’];
PHPが自動的に変換してくれて、ピリオドはアンダースコアに変換されています。
なぜphpがこんなことをするのか? これは$_GET/$_POST/$_SERVER/$_COOKIEのためです。 。 。これらのグローバル関数の値は、以前の多くのバージョンでは register_globals パラメーターを介してローカルで直接アクセスできます。たとえば、 register_globals = on をオンにした後、$my_name に直接アクセスすると値が 1 になります。 $my.name の場合、PHP 変数の命名規則に準拠していません。これはピリオド (.) だけの問題ではありません。
したがって、$_COOKIEの命名はすでにPHPの命名標準に準拠しています。
さらに、 register_globals をオンにすることは、次のようなスクリプト内の元の値を上書きする可能性があるため、非常に悪い決定です。
// その他のコードif ($a)
$uc_is_login = true;
// ...
デフォルトでログインするには、ユーザーは url?a=1 を指定して http リクエストを送信するだけで済みます。これは非常に危険な行為であるため、閉鎖する必要があります。実際、php6 ではこのオプションが削除されました。