ホームページ >バックエンド開発 >PHPチュートリアル >PHP Cookie のドット (ピリオド) は自動的にアンダースコアに変換されます。Cookie には下線が付いています_PHP チュートリアル。

PHP Cookie のドット (ピリオド) は自動的にアンダースコアに変換されます。Cookie には下線が付いています_PHP チュートリアル。

WBOY
WBOYオリジナル
2016-07-13 10:16:231115ブラウズ

PHP Cookie 内のドット (ピリオド) は自動的にアンダースコアに変換され、Cookie に下線が付きます

PHP Cookie ではドット (ピリオド) は使用できません。実際には、ドットを含む Cookie 名を使用することはできますが、Cookie に名前を付けることはできません。

$_COOKIE['my.name'] = 1;


実際には、Cookie 内で「my.name」経由でこの値を見つけることはできず、「my_name」:

のみで見つけることができます。


エコー $_COOKIE['my_name']


php が自動的に変換し、ピリオドはアンダースコアに変換されます。


なぜphpがこれを行うのですか?これは $_GET/$_POST/$_SERVER/$_COOKIE が原因です。 。 。これらのグローバル関数の値は、以前の多くのバージョンでは register_globals パラメーターを介してローカルで直接アクセスできます。たとえば、 register_globals = on をオンにした後、$my_name に直接アクセスすると値が 1 になります。 $my.name の場合、PHP 変数の命名規則に準拠していません。これはピリオド (.) だけの問題ではありません。


したがって、$_COOKIE の命名はすでに PHP 命名標準に準拠しています。


register_globals をオンにすることも、次のようなスクリプト内の元の値を上書きする可能性があるため、間違った決定です。


// 他のコード

もし ($a)

$uc_is_login = true;
// ...


ユーザーは、デフォルトでログインするには、url?a=1 を指定して http リクエストを送信するだけで済みます。これは非常に危険な行為であるため、閉鎖する必要があります。実際、php6 ではこのオプションが削除されました。

php cookie の使用問題

setcookie("name", "val",expire_time, "/", ".domain.com");

domain.com のサブディレクトリに適用できるように、.domain.com の前にピリオドを追加します。
「/」はルートディレクトリです。
これにより、どこにいても保存された Cookie を取得できます。


php cookie の問題、100 ヘルプ

ドメイン名にアンダースコアを使用できますか?私の理解では、ダッシュのみを使用できるということです。


http://www.bkjia.com/PHPjc/897693.html

tru​​ehttp://www.bkjia.com/PHPjc/897693.html技術記事 php cookie のドット (ピリオド) が自動的にアンダースコアに変換されるという問題があります。実際には、ドット (ピリオド) は使用できません。 ..
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。