0

メインの index.php に次のコードがあります。

<script type="text/javascript" src="http://mydomain.com/test.php"></script>

以下は、test.php のコードです。

<?php
$referringDomain = $_SERVER['HTTP_REFERER'];
$myDomain = 'mydomain.com';
if ( preg_match("($myDomain)i", $referringDomain, $matches) == false ) {
//no match - output redirect javascript
?>
window.top.location.href=’http://realdomain.com’;
<?
Die();
} else {
// do nothing
}
?>

ただし、コードはリアルタイムで動作していないようです。何が間違っている可能性がありますか?

4

4 に答える 4

1

必要がない場合は正規表現を使用しないでくださいparse_url。リファラーを使用してそのドメインを取得し、それを自分のドメインと照合するだけです。また、PeeHaa が指摘したように、JavaScript では間違った種類の引用符を使用しました。

<?php
$referrer = $_SERVER['HTTP_REFERER'];
$referringURL = parse_url($referrer);
$myDomain = 'mydomain.com';

if ($referringURL['hostname'] !== $myDomain) {
  //no match - output redirect javascript
  echo "window.top.location.href='http://realdomain.com';";
}
?>
于 2013-02-16T15:32:31.173 に答える
0
<?php
$referringDomain = $_SERVER['HTTP_REFERER'];
$myDomain = 'mydomain.com';
if ( preg_match("($myDomain)i", $referringDomain, $matches) == false ) {
//no match - output redirect javascript
?>
<script>
    window.top.location.href="http://realdomain.com";
</script>
<?php
Die();
} else {
// do nothing
}
?>
于 2013-02-16T15:32:58.880 に答える
0

PHP コードの実行中にユーザーを別のページにリダイレクトする必要がある場合: ブラウザーで何かを出力 (エコー) する前に、これを使用する必要があります。

<?php
  header("Location: http://www.website.com/anotherpage.php") ;
  exit() ;
?>

現在のコードの実行は終了するため、サーバーの負荷を軽減できます。JavaScript を使用している間、PHP はコードを最後まで実行し、それをブラウザーに出力してから、ブラウザーはユーザーをリダイレクトします。

ただし、ページが読み込まれた後にリダイレクトが必要な場合は、次のオプションがあります。

<script>
  window.location = "anotherpage.php" ;
  //or window.location.href = "anotherpage.php" ;
</script>

編集:header("Location: $url")絶対 URL を含める必要があります - PeeHaa のおかげで

于 2013-02-16T15:33:44.953 に答える
0
window.top.location.href=’http://realdomain.com’;

window.top.location.href='http://realdomain.com';

引用符が間違っています。一重引用符を使用します。

于 2013-02-16T15:34:09.057 に答える