クッキーについての質問

WBOY
リリース: 2016-06-23 13:59:21
オリジナル
953 人が閲覧しました


第 2 レベル ドメイン名 a.c.com と b.c.com

a.c.com の A.php をリクエストすると、A.php POST は b.c.com の B.php をリクエストし、B.php に COOKIE を設定します。

このように、サーバー上にCOOKIEは存在するのでしょうか?私がリクエストしたクライアントではなく?

解決方法、ありがとうございます


ディスカッション(解決策)への返信

cookie クライアントに保存されます。
Cookie の読み取りと書き込みにはドメイン名の制限が適用されます。

.c.com ドメインに Cookie を書き込むことで、2 つのサイト間で Cookie を共有できます

bool setcookie ( string $name [, string $value [, int $expire [, string $path [, string $domain [, bool $secure [, bool $httponly]]]]] SETCOOKIE 関数を使用できます。たとえば、www を設定する場合、これはドメイン名です。 aa.com と bbs.aa.com は同様に有効です。このパラメータを「.aa.com」に設定するだけです。

非常に明確な bool setcookie ( string $name [, string $value) をよく読んでください。 [, int $expire [, string $path [, string $domain [, bool $secure [, bool $httponly]]]]] SETCOOKIE 関数を使用できるオプションのパラメータ string $domain です。たとえば、www.aa.com と bbs.aa.com を設定する場合は、このパラメータを「.aa.com」に設定するだけです。

上の 2 人が言っていることはわかりますよね? 明確に表現していませんでしたが、仲介者が介在した後も、最初に要求したクライアントに COOKIE を保存できますか? COOKIE は最初に要求したクライアントにまだ保存されていますか? プロキシを使用しない場合は、C ドライブに移動して検索できます

Cookie は常に に保存されています。
有効期限が設定された Cookie のみが、ドメイン名にちなんで名付けられたファイルとして保存されます


Cookie は常にクライアントに保存されます
有効期限が設定された Cookie のみが、ドメイン名にちなんで名付けられたファイルとして保存されます

テストを行いました:

1.php

$res = file_get_contents("http://a.c.com/2.php?k1=123&k2=456");var_dump($res);exit;
ログイン後にコピー


2.php
$k1= $_REQUEST['k1'];$k2= $_REQUEST['k2'];setcookie("k1", $k1, time() + 7 * 24 * 3600, '/', '.c.com');setcookie("k2", $k2, time() + 7 * 24 * 3600, '/', '.c.com');echo "ok";
ログイン後にコピー


1.php をリクエストした後、OK と表示されますが、ブラウザーには COOKIE が表示されません

はい、ブラウザーには Cookie がありません
ためCookie はブラウザのものであり、file_get_contents はファイル操作であり、互いに何の関係もありません

はい、ブラウザには Cookie がありません
なぜなら、Cookie はブラウザのものであり、file_get_contents はファイル操作であり、互いに何の関係もありません。お互い

まだ理解できないのですが、この COOKIE の設定は成功しましたか? それでは、ブラウザが .c.com ドメイン名をリクエストすると、この COOKIE を取得できますか?


はい、ブラウザは取得します。 Cookie はありません
Cookie はブラウザのものであり、file_get_contents は互いに独立したファイル操作であるためです

私が表現したいのは、file_get_contents に加えて、上記の COOKIE セットがブラウザの COOKIE 表示関数では見られないということです。 CURL の GET と POST も試しました


2. php によって送信された http ヘッダーは file_get_contents によって無視されたため (テキスト部分のみ取得)、Set-Cookie 命令は実行されません
したがって、Cookie は存在しません

ブラウザのみまたは、curl アクセスは Cookie を運ぶことができます

もちろん、file_get_contents は context 属性を介して Cookie を送信することもできますが、それらを取得することはできません

2.php によって送信された http ヘッダーは、file_get_contents によって無視されます (テキスト部分のみが取得されます)。 -Cookie 命令は実行されません

つまり、Cookie は存在しません

Cookie を運ぶことができるのはブラウザまたはカールアクセスだけです
さて、上で書いた file_get_contents が COOKIE を設定できない理由は理解できました。どのようなメソッドを使用すれば COOKIE を設定できるのか教えてください。 CURL の GET と POST を使用してみましたが、うまくいきませんでした。ありがとう

まずは読んだほうがいいです。マニュアルやオンラインの記事を確認してください
結局のところ、ここは学校ではありません

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート