嘿,我嘗試驗證,如果用戶試圖所以我使用下面的代碼停止雙擴展uplaod
function ExtensionValide($sFileName) {
$fileNameInfo = array();
if (preg_match('/.php.|.js./',$sFileName)) {
return false; # Tentative de masquer des extensions dangereuses !
}
else {
$extension_valide = array('gif','png','jpg','jpeg','txt','pdf','html','mp3','csv');
$extension_upload = strtolower(substr(strrchr($sFileName,'.'),1));
$fileNameInfo[0] = in_array($extension_upload,$extension_valide);
$fileNameInfo[1] = ".$extension_upload";
$fileNameInfo[2] = basename($sFileName,$fileNameInfo[1]);
return $fileNameInfo;
}
}
,但問題仍然是用戶可以uplaod上傳雙擴展名文件以大寫字母,所以我想找到是否有任何正則表達式,可以處理thnig在preg_match('/.php.|.js./',$sFileName)
我想說.PHP.png preg_match('/.any_string./',$sFileName)
我怎麼能做到這一點
也許你可以在檢查前使用http://php.net/manual/en/function.strtolower.php strtolower?將所有字母轉換爲小寫? – Danielius
@Danielius非常感謝你,你做得對 – PacMan
沒問題,祝你好運:) – Danielius