ホームページ > バックエンド開発 > PHPチュートリアル > PHP Cookie はどのようにしてドメインを越えるのでしょうか?

PHP Cookie はどのようにしてドメインを越えるのでしょうか?

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

php COOKI クロスドメイン



専門家からの指導をお願いします。操作方法。


PHP setcookie のドメインパラメータ要件と問題点についても詳しく説明します


例: setcookie("name","value",time()+3600,"path","domain","http" ) ;


ドーマンの中間要求事項。例: 2 つの Web サイトがあり、demo.xx.com admin.xx.com このように、ドメインを設定する方法は、専門家に相談してください。




ディスカッションへの返信 (解決策)
setcookie("name","value",time()+3600,"/","xx.com");

setcookie("name"," value",time()+3600,"/","xx.com");

これは実現可能ですか?クロスドメインは可能ですか?テストしましたか?/

よければ、ご自身でテストしてください

OK なら、ご自身でテストしてください

わかりました、テストします。

クロスドメイン Cookie には jsonp を使用する必要があります。
setcookie("name","value",time()+3600,"/","xx.com") は、他の人のドメイン名にまたがって使用することはできません。

クロスドメイン Cookie には jsonp を使用する必要があります。

setcookie("name","value",time()+3600,"/","xx.com") は、他の人のドメイン名にまたがって使用することはできません。

jsonpをテストする方法。 。 。どうやってするの。



可能ですか? ご自身でテストしてください

テストしましたが、動作しません。 。 hms.org.cn をこのように設定すると、ドメイン名 xxx.hms.org.cn が使用できるようになります。

ただし、demo.hms.org.cn からは取得できません。 COOKIE に移動します

5 階の hellodifa からの返信を引用: クロスドメイン Cookie には jsonp が必要です。
setcookie("name","value",time()+3600,"/","xx.com") は、他の人のドメイン名にまたがって使用することはできません。

jsonpをテストする方法。 。 。どうやってするの。

セキュリティ上の理由から、ブラウザは Web サイト a から Web サイト b へのクロスドメイン Cookie をサポートしていません。ただし、Web サイト a と Web サイト b の両方があなたのものである場合、クロスドメイン Cookie はサポートされますが、Web サイト b の情報を変更する必要があります。 。
オンラインには、次のような多くの例があります: http://www.nowamagic.net/javascript/js_UseJsonpCrossDomain.php

6 階の xviphackl からの引用: 5 階の hellodifa からの返信: クロスドメイン Cookie には次の使用が必要ですjsonpの。
setcookie("name","value",time()+3600,"/","xx.com") は、他の人のドメイン名にまたがって使用することはできません。

jsonpをテストする方法。 。 。どうやってするの。

セキュリティ上の理由から、ブラウザは Web サイト A から Web サイト B へのクロスドメイン Cookie をサポートしていませんが、次の場合は...


JSONP の原理を理解しました。


私が今しなければならない問題を説明しましょう。


2 つのステーション A と B があり、A はフロントデスクを担当し、B はバックエンドを担当します


ステーション A には、index.php ファイルが 1 つだけあり、ステーション B はサイト全体の処理を担当します。それらは異なるドメイン名を処理します。


ステーション A でログインしていますが、ステーション B でもログインする必要があります (ステーション B に直接アクセスすれば問題なく動作します)。

しかし、ステーションAからログインするとログインに失敗しました。


私の最初の解決策は、JS を使用してステーション B が必要とする COOKIE 値をステーション A に与え、ステーション A がログイン値 COOKIE を設定することでした。しかし、それでも問題は解決できませんでした。


私の言っていることが理解できますか?




6 階の xviphackl の返信からの引用: 5 階の hellodifa の返信からの引用: クロスドメイン Cookie には jsonp の使用が必要です。
setcookie("name","value",time()+3600,"/","xx.com") は、他の人のドメイン名にまたがって使用することはできません。

jsonpをテストする方法。 。 。どうやってするの。

セキュリティ上の理由から、ブラウザは Web サイト A から Web サイト B へのクロスドメイン Cookie をサポートしていませんが、次の場合は...


小さな問題を修正させてください。


ステーション A からログインしていますが、プロンプトが表示されます。成功しましたが、成功しませんでした。


Station B から直接ログインすると、正常にログインできます。


ステーション A にはファイルが 1 つだけあり、処理する必要がある結果を B から取得し (file_get_contents)、ステーション A に置きます。


8階 hellodifa からの引用: 6 階 xviphackl からの返信: 5 階 hellodifa からの引用: クロスドメイン Cookie には jsonp が必要です。
setcookie("name","value",time()+3600,"/","xx.com") は、他の人のドメイン名にまたがって使用することはできません。

jsonpをテストする方法。 。 。どうやってするの。
セキュリティ上の理由から、ブラウザはサポートしていません...

サイト a にサイト b からの Cookie がすでに存在するが、サイト b からの取得に失敗した場合、サイト b からの取得に問題があるだけである可能性があります。Cookie は正しいですか?すべては過ぎ去りました、などなど。 。

10 階の xviphackl からの引用: 8 階の hellodifa からの返信: 6 階の xviphackl からの引用: 5 階の hellodifa からの返信: クロスドメイン Cookie には jsonp の使用が必要です。
setcookie("name","value",time()+3600,"/","xx.com") は、他の人のドメイン名にまたがって使用することはできません。

jsonpをテストする方法。 。 ……


では、ありがとうございます! !行って見てみます。年間の進捗を見ることは、データを取得することではありません。

ステーション A は COOKIE を印刷します ステーション B も COOKIE を印刷します


ステーション A からアクセスしてログインすると、ステーション B の COOKIE は空になります (ステーション A からステーション B にアクセスすると、すでに COOKIE が存在します)。ステーション B で印刷された COOKIE は、ドメインから COOKIE を読み取ることができるはずです



このような理由からだと思いますが、

データをキャプチャするステーション A は 1 つだけです。 。 。具体的な実装方法はB局ですが、A局はB局がログインしているCOOKIEを持っています。なぜB局はAからB局にアクセスするA局のCOOKIEを取得できないのでしょうか?

両方の Cookie のフィールドが同じに設定されているのは当然ですが、なぜそれらを取得できないのでしょうか?



データをキャプチャするステーション A は 1 つだけです。 。 。具体的な実装方法はB局ですが、A局はB局がログインしているCOOKIEを持っています。なぜB局はAからB局にアクセスするA局のCOOKIEを取得できないのでしょうか?

A はカールを使ってクロールしていますか? Curl はクッキーを渡すだけです。

A が B のものを取りに行きます。a が cookie を b に渡さなければ、b は a がどのような cookie を持っているかを知ることができません。 。



データをキャプチャするステーション A は 1 つだけです。 。 。具体的な実装方法はB局ですが、A局はB局がログインしているCOOKIEを持っています。なぜB局はA局からB局にアクセスするA局のCOOKIEを取得できないのでしょうか?


A はカールを使ってクロールしていますか? Curl はクッキーを渡すだけです。
A が B のものを取りに行きます。 a が cookie を b に渡さない場合、b は a がどのような cookie を持っているかを知る方法がありません。 。

CURL を使用してキャプチャする代わりに、file_get_contents 関数が使用されます。この種のデータ対話では、データをキャプチャするために CURL が必要ですか?



これはステーション A からアクセスされます。


file_get_contents この関数は、Web サイトにアクセスして情報を取得するものであり、ブラウザにアドレスを直接入力してリクエストすることと同じであり、絶対に取得することはできません。サーバーのクッキー。

それは、あなたが自分のコンピュータのブラウザを使用して Web サイトにアクセスする場合、この Web サイトはどのようにしてあなたのコンピュータの Cookie を認識するのでしょうか?


わかりました、教えられます。どのリンクが問題の原因であるかわかりました。よろしくお願いします。

まずはチェックして、後でチェックしてみましょう。 。 。


file_get_contents 関数は、Web サイトにアクセスして情報を取得することと同じであり、サーバーの Cookie を取得することはできません。
それは、あなたが自分のコンピュータのブラウザを使用して Web サイトにアクセスする場合、この Web サイトはどのようにしてあなたのコンピュータの Cookie を認識するのでしょうか?

改めて誠心誠意、ありがとうございます。問題は解決された。どの理由を挙げましたか?


file_get_contents は COOKIE 値を渡しません。ステーション B にはステーション A の COOKIE が何であるかを知らせません。

改めてありがとうございます。

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