ホームページ >バックエンド開発 >PHPチュートリアル >PHP はブラウザのアドレスを取得し、更新後にアドレスを取得できなくなります。何が起こっているのか教えてください。

PHP はブラウザのアドレスを取得し、更新後にアドレスを取得できなくなります。何が起こっているのか教えてください。

WBOY
WBOYオリジナル
2016-06-13 12:41:33827ブラウズ

PHP はブラウザーのアドレスを取得しますが、更新後にアドレスを取得できなくなります。

私のx.phpコードは次のとおりです。このコードの一般的な意味は次のとおりです。ある Web サイトを使用して、別の Web サイトのリソースを参照します。
私のウェブサイトは http://www.123.com と http://www.abc.com
です。 http://www.123.com/x.php/love.mp3 と入力すると、実際に開くのは
です。 http://www.abc.com/abc/love.mp3。次のコードは完全に実装可能です。

header("content-Type: text/html; charset=Utf-8");
$SERVER=$_SERVER["REQUEST_URI"];
preg_match("/php/([sS] ).mp3/",$SERVER,$url);
$urlname=$url[1];
$downurl='http://www.abc.com/abc/'.$urlname.'.mp3';
header("location:$downurl");
?>

Web ページのプレーヤーは http://www.123.com/x.php/love.mp3
を再生できます。 その後、ホットリンク防止とダウンロード防止のコードを追加しました:

header("content-Type: text/html; charset=Utf-8");
$SERVER=$_SERVER["REQUEST_URI"];
preg_match("/php/([sS] ).mp3/",$SERVER,$url);
$urlname=$url[1];
$downurl='http://www.abc.com/abc/'.$urlname.'.mp3';

$url = $_SERVER["HTTP_REFERER"] //完全なソース URL を取得します
$str = str_replace("http://","",$url) //http://
を削除します。 $strdomain =explode("/",$str); // "/"
で配列に区切る $domain = $strdomain[0] //最初の「/」より前の文字を取得します
; if ($domain=="www.123.com"){

header("location:$downurl");

}
if ($domain==""){
header("場所:http://www.123.com/daolian.mp3");
}
if ($domain!="www.123.com"){

header("場所:http://www.123.com/daolian.mp3");

}
?>

修正が完了すると、ホットリンク防止とダウンロード防止が実装され、Web ページ上のプレーヤーで http://www.123.com/x.php/love.mp3 を再生すると、再生できなくなります。コードはどこから来ていますか?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。