私はphpの初心者で、ページA.php、B.php、およびC.phpがあり、ページA.phpがページC.phpにリクエストを送信しているかどうかを知りたいのですが、リクエストがA.phpからのものではないことをどのように知ることができますか他のページ。ありがとう
4 に答える
値を確認してください$_SERVER['HTTP_REFERER']
。
phpの$_SERVER変数を確認してください。使いたいようですね$_SERVER['HTTP_REFERER]
。
注:これは、ブラウザのユーザーエージェントからの情報を使用するため、100%正確ではありません。これは、なりすましの可能性があり、その情報をまったく送信しないものもあります。
この情報を100%保証する方法はありませんが、それが最善の策です。
簡単に言えば、C.php内:
<?php
if ($_SERVER['HTTP_REFERER'] == 'http://www.somesite.com/A.php'){
// Do it
} else {
// Do not
}
信頼性を向上させるために、渡された他のデータ(セッション変数など)を使用することができます(フォームを使用している場合はさらにそうです)。それが他に何もないまっすぐなリンクである場合、それはより困難です。
URL 呼び出しの GET 配列に変数を追加して、それを確認します - www.yoururl.com/pageC?callingPage=a そのようなもの。referrer 変数は必ずしも信頼できるものではありません :/ また、どのページから来ているかを知る必要があるため、そのページのデータで何かをしているわけではありませんか? その場合は、とにかく送信されるデータで識別変数を渡すことができます。そうでない場合でも、先ほど説明した方法を使用できます。