ユーザーが自分の Web サイトからオーディオをダウンロードできるようにする PHP プログラムをプログラミングしています。
これを行うには、 www.mysite.com/downloadit.php?file= myfile.mp3 にアクセスすると、myfile.mp3の ダウンロードがすぐに開始されます。ただし、問題があります。人々がシステム ファイルをダウンロードできるようにしたくありません。部分文字列またはが含まれているかどうかを確認して、これを解決します。コマンドでこれを実行しようとしていますが、機能させることができません。文字列内の複数の部分文字列 (.mp3 および .wav) をチェックするにはどうすればよいですか? それとも、別のコマンドを使用する必要がありますか? 私にお知らせください!
これまでの私のコードは次のとおりです。$_GET['file']
.mp3
.wav
strpos
strpos
$haystack=$_GET['file'];
$resulting = strpos($haystack, ".mp3");
//if found $resulting will equal 1
//if not found $resulting will equal 0
//if $resulting is less than one then it must be 0
if($resulting < 1){
//security breach!
die("Unauthorized");
}
//assuming we passed the last test, everything went well, we will then continue
else{
//code here
}
@DoubleSharp のおかげで、この完成したコードが完成しました!!!
//if it is found $resulting will not equal 0
//if it is not found $resulting will equal 0
//echo the result
//echo $resulting;
//add a line break
echo "<br/>";
//if $resulting is less than one then it must be 0
//since it is 0 it must mean that it is a breach!
if (preg_match("~\.(mp3|wav)$~i", $haystack))
{
echo "hi nice file";
}
else
{
die("bad file");
}
?>