質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1886閲覧

リクエストにどんなcookieがセットされているか調べる方法は無いものでしょうか?

GiveAHand

総合スコア286

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/10/04 02:06

PHPのcookieの事で詳しく知りたいと思っている事があります。

あるリクエストに対し、

PHP

1isset($_COOKIE["examole"])

とすれば、指定した名称のcookieが存在している事はわかりますが、
そもそも、このリクエストにどんなcookieが存在しているのか、
または、全く存在していないかを調べる方法は無いものでしょうか?

また、cookieは、自分のサーバーからセットしたcookieしか、
参照できず、他のサーバーがセットしたcookieは見えないものなのでしょうか?
見えないとしても、データがあるかないかもわからないものなのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Cookieとはそもそもブラウザに保存されてたデータであり、ドメインごとに管理されています。
ブラウザはあるリクエストにどのCookieが使われるかは知らないので、
リクエストするときはそのドメインのCookieをすべて送信します。
※ブラウザのデベロッパーツールでネットワークのリクエストの詳細をみるとcookieの情報もあります。

それをふまえて、以下の質問に回答します

そもそも、このリクエストにどんなcookieが存在しているのか、
または、全く存在していないかを調べる方法は無いものでしょうか?

以下のように$_COOKIEの値を出力すればわかります。

php

1var_dump($_COOKIE);

また、cookieは、自分のサーバーからセットしたcookieしか、
参照できず、他のサーバーがセットしたcookieは見えないものなのでしょうか?

基本的にはドメインで管理しているので、同じドメインのCookieしかみれません。
別のサーバのCookieは見れません。
※ただし、親ドメインのCookieはみれます。

見えないとしても、データがあるかないかもわからないものなのでしょうか?

わかりません。

投稿2016/10/04 02:20

編集2016/10/04 02:22
popobot

総合スコア6586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GiveAHand

2016/10/04 02:25

ichii様 かなり詳しいご回答ありがとうございます。 大変よくわかりました。 できれば、あともう一つ教えて頂きたいことがあるのですが、 cookieが削除された日時を取得することは出来ないものなのでしょうか?
popobot

2016/10/04 02:29

できません。ブラウザはCookieを削除するときに履歴などは残しませんし、今あるCookie情報を送ることしかしません。
GiveAHand

2016/10/04 04:02

icchii様 ご回答ありがとうございます。 大変詳しい情報、ありがとうございました!
guest

0

$_COOKIEは配列ですから
print implode(",",array_keys($_COOKIE));
とすればキーの一覧が得られるでしょう。

またcount($_COOKIE)が0であればクッキーはセットされていません

投稿2016/10/04 02:12

yambejp

総合スコア114814

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GiveAHand

2016/10/04 02:20

yambejp様 ご回答ありがとうございます。 なるほど、そうなんですね。 ちなみになんですが、count($_COOKIE)で得られる数は、 他サーバーでセットしたcookieも含まれるのでしょうか?
GiveAHand

2016/10/04 02:26

yambejp様 上記の質問は、icchii様からのご回答により、 解決致しました。
yambejp

2016/10/04 02:27

クッキー自体もともとドメインを超えることはできない仕様です 他サーバーでcookieは設定されないはずですが クッキー自体がブラウザの機能ですので偽装可能なことから もしされているのであれば表示されるはずです
GiveAHand

2016/10/04 04:03

yamejp様 ご回答ありがとうございました。 そうなんですね。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問