1

certian紹介サイトから来た自分のサイトのユーザーをリダイレクトして特別なメッセージを表示しようとしています。私はこれを持っています:

<?php $REFERER = $_SERVER['HTTP_REFERER'];

  if ($REFERER == "http://www.url.com/") { 
?>

Content Goes Here

?>    
    }
?>

そして、彼らはメッセージを受け取りません

私はテストを行い、他のサイトの1つからテストを行い、出力内容をエコーし $_SERVER['HTTP_REFERER'];​​、上記のコードを正確に一致するように変更しました。それは機能しましたが、私が抱えている問題は、の出力が$_SERVER['HTTP_REFERER'];まったく同じではないと思います。たとえば、それらがページ上にある場合www.domain.com/page2/index.php、リファラーはhttp://www.domain.com/page2/

/?!?の後に何があっても、www.domain.comから来る人々がそうするようにする方法はありますか?

アップデート:

私は最初の2つの答えをすべて試しましたが、それを機能させることができませんでした(おそらく私のせいです)ので、彼らが送ったものからいくつかの調査を行い、これを作成しました:

<?php 
    $mystring = $_SERVER['HTTP_REFERER']; 
    $findme   = 'domain'; 
    $pos = strpos($mystring, $findme);

if ($pos === false) {
    } else {
    echo "content";
 ?>

このオプションは機能しているように見えるので、何か問題がありますか?

4

3 に答える 3

2

文字列がで始まるかどうかを確認できますhttp://www.url.com/

if (strpos($REFERER, "http://www.url.com/") === 0) { 
于 2012-11-30T23:54:30.543 に答える
1

本当に単純なものは次のようになります。

if (strpos($REFERER, "www.url.com") !== false) { 
于 2012-11-30T23:53:12.083 に答える
0

phpのparse_url関数を使用できます:

<?php $REFERER =  parse_url($_SERVER['HTTP_REFERER'], PHP_URL_PATH);

    if ($REFERER['host'] == "www.url.com") { 
?>
于 2012-11-30T23:56:26.503 に答える