1

参照 URL に基づいて訪問者をサイトにリダイレクトしようとしています。

スクリプトは次のとおりです。

php
$domain='blankds.com';
$referrer=$_SERVER['HTTP_REFERER'];
$リファラーをエコーし​​ます。
if (preg_match("/$domain/",$referrer)) {
 header('場所: http://www.blackisgreen.org/page_1.php');
 } そうしないと {
 header('場所: http://www.blackisgreen.org/page_2.php');
};

エラー: ヘッダーを送信する前に $referrer をエコーし​​ているため、「警告: ヘッダーを変更できません」というエラーが表示されます。

エコーを削除すると、スクリプトは機能しません。

助言がありますか?

4

2 に答える 2

0

注:出力はすべてヘッダーを自動生成します。ヘッダーを使用してリダイレクトする場合は、コメントアウトするecho $referrer;必要があります。デバッグ目的でどのリファラーがどのサイトにアクセスするかを確認する必要がある場合は、URLに入力するだけで、受信ページはそれを無視する必要があります。

于 2010-06-12T14:12:30.693 に答える
0

PHP は、ページを要求しているユーザーにヘッダーを送信していますecho $referrer。次に呼び出しているヘッダー関数は、これらのヘッダーを変更して場所のリダイレクトを追加しようとしますが、ページ コンテンツの開始と共にヘッダーが既に送信されているため、できません。

この問題を回避するには、PHP の出力制御関数を調べてください。特にob_start();、スクリプトの先頭に挿入されている関数を使用すると、リダイレクトの場所をエコーし​​続け、同時にリダイレクトできるようになります。

于 2010-06-12T14:04:06.693 に答える