第 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;
$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";
はい、ブラウザには Cookie がありません
なぜなら、Cookie はブラウザのものであり、file_get_contents はファイル操作であり、互いに何の関係もありません。お互い
はい、ブラウザは取得します。 Cookie はありません
Cookie はブラウザのものであり、file_get_contents は互いに独立したファイル操作であるためです
2. php によって送信された http ヘッダーは file_get_contents によって無視されたため (テキスト部分のみ取得)、Set-Cookie 命令は実行されません
したがって、Cookie は存在しません
ブラウザのみまたは、curl アクセスは Cookie を運ぶことができます
もちろん、file_get_contents は context 属性を介して Cookie を送信することもできますが、それらを取得することはできません
つまり、Cookie は存在しません
Cookie を運ぶことができるのはブラウザまたはカールアクセスだけです
さて、上で書いた file_get_contents が COOKIE を設定できない理由は理解できました。どのようなメソッドを使用すれば COOKIE を設定できるのか教えてください。 CURL の GET と POST を使用してみましたが、うまくいきませんでした。ありがとう
まずは読んだほうがいいです。マニュアルやオンラインの記事を確認してください
結局のところ、ここは学校ではありません