web-dev-qa-db-ja.com

PHP

理論的な質問があります。

私はあなたがPHP cookieをjavascriptで使用して次のようにしてクッキーを取得/読み取ることができることを知っていますdocument.cookie

PHPでこれを行うための同様の方法はありますか?

PHP JavaScriptで作成されたCookieを取得/読み取りできますか?できる場合、どうすればできますか?

13
Spoofy

スーパーグローバルである $_COOKIE を使用できます。配列と同じように参照してください。$_COOKIE['key_name']は、アクセスするCookieです。

PHP APIドキュメント を参照してください。

17
jacobroufa

それらを表示するには、次のようにします。

foreach($_COOKIE as $v){
  echo htmlentities($v, 3, 'UTF-8').'<br />';
}

単一のCookieの場合は、次のとおりです。

echo htmlentities($_COOKIE['cookieName'], 3, 'UTF-8');

必要に応じて、見積もりスタイル(3はENT_QUOTES)と文字セットを自由に変更してください。

注:Cookieにアクセスするには、同じドメインにCookieが設定されている必要があります。

1
StackSlave

JavaScriptはCookieを(私が知っている)2つの方法で設定できますwindow.cookieおよびdocument.cookiewindow.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のみを評価できます

1
chokey2nv

PHPglueの答えは良いですが、いくつかのタイプミスがあります。また、インデックスが何であるかがわかりません。

foreach($_COOKIE as $key=>$value)
{
  echo "key: ".$key.'<br />';
  echo "value: ".$value.'<br />';
};

私の問題は、名前にピリオドを含むJavaScriptでCookieを設定していたことです。これらはアンダースコアに変換されていました。たとえば、Cookie名のfacebookLogin.myapp.comはfacebookLogin_myapp_comに変更されていました。上記のコードを実行すると、名前が予想とは異なることがわかり、PHPから正しく名前を読み取ることができました。

0
Justin Domnitz

これは、1つのcookieにすべての親密さを設定し、情報の間に記号を使用するための良い方法だと思います。次に、JavaScriptでCookieを設定した後、たとえば「PHP」でこれを使用します

$mystr = print_r($_COOKIE);
$way=explode(";",$mystr);
0