0

アップロードされたファイルが.jpg、.jpeg、または.JPGでない場合、サイトでエラーが発生するようにしようとしています。

<?php
function error(){echo"<script>$(function(){alert('Error')});</script>"; exit();}
$fileName = $_FILES['image']['name'];
$ext = substr(strrchr($fileName, "."), 1);

if($ext != "jpg" || $ext != "jpeg" || $ext != "JPG"){ error(); }
?>

現在のところ、別のファイルタイプ(.png、.gif、.docなど)がアップロードされても何も起こりません。error()関数はページの残りの部分の動作を停止しますが、ユーザーにエラーアラートを表示しません。

4

2 に答える 2

1

この行を変更します。

function error(){echo"<script>$(function(){alert('Error')});</script>"; exit();}

これのために:

function error(){echo"<script>alert('Error');</script>"; exit();}
于 2012-09-17T19:53:27.243 に答える
0

これは、ファイル拡張子を「ホワイトリストに登録する」ための簡単なスニペットです-

$path_info = pathinfo($fileName);
$ext = strtolower($path_info['extension']);
$extWhitelist = array(
 'bmp',
 'gif', 
 'jpeg',
 'jpg',
 'png'
);
if (!in_array($ext,$extWhitelist)){
  // invalid file extension! 
}

内のファイル拡張子のみ$extWhitelistが許可されます。

資力 -

于 2012-09-17T19:52:26.993 に答える