理論的な質問があります。
私はあなたがPHP cookieをjavascriptで使用して次のようにしてクッキーを取得/読み取ることができることを知っていますdocument.cookie
PHPでこれを行うための同様の方法はありますか?
PHP JavaScriptで作成されたCookieを取得/読み取りできますか?できる場合、どうすればできますか?
スーパーグローバルである $_COOKIE
を使用できます。配列と同じように参照してください。$_COOKIE['key_name']
は、アクセスするCookieです。
PHP APIドキュメント を参照してください。
それらを表示するには、次のようにします。
foreach($_COOKIE as $v){
echo htmlentities($v, 3, 'UTF-8').'<br />';
}
単一のCookieの場合は、次のとおりです。
echo htmlentities($_COOKIE['cookieName'], 3, 'UTF-8');
必要に応じて、見積もりスタイル(3はENT_QUOTES)と文字セットを自由に変更してください。
注:Cookieにアクセスするには、同じドメインにCookieが設定されている必要があります。
JavaScriptはCookieを(私が知っている)2つの方法で設定できますwindow.cookie
およびdocument.cookie
。 window.cookie
を使用すると、phpがCookieを評価できない場合、phpはdocument.cookie
によって設定されたCookieしか評価できません。
javaScript
document.cookie = 'name = value';
PHP
print_r($ _ COOKIE);
phpによって作成されたものの中で、JavaScriptによって作成されたCookieが表示されます。
または
echo $ _COOKIE ['name'];
Javascriptを使用してphp cookieを評価する同じdocument.cookie
を使用して、ドキュメント(php)cookieとdocument.cookieで作成されたjavascript cookieを評価します。
JavaScriptはwindow.cookiesで作成されたCookieのみを評価できます
PHPglueの答えは良いですが、いくつかのタイプミスがあります。また、インデックスが何であるかがわかりません。
foreach($_COOKIE as $key=>$value)
{
echo "key: ".$key.'<br />';
echo "value: ".$value.'<br />';
};
私の問題は、名前にピリオドを含むJavaScriptでCookieを設定していたことです。これらはアンダースコアに変換されていました。たとえば、Cookie名のfacebookLogin.myapp.comはfacebookLogin_myapp_comに変更されていました。上記のコードを実行すると、名前が予想とは異なることがわかり、PHPから正しく名前を読み取ることができました。
これは、1つのcookieにすべての親密さを設定し、情報の間に記号を使用するための良い方法だと思います。次に、JavaScriptでCookieを設定した後、たとえば「PHP」でこれを使用します
$mystr = print_r($_COOKIE);
$way=explode(";",$mystr);