Ciao a tutti, volevo chiedervi un parere sul funzionamento di questo script trovato non ricordo dove, probabilmente proprio su html.it...
Si tratta, come avrete capito, dell'upload di immagini, in questo caso di un avatar, che non deve superare determinati limiti in termini di kilobyte (10) e pixel (100*100).
I formati ammessi sono unicamente gif/jpeg.
Uso questo script da diverso tempo, l'ho testato personalmente e funziona. Tuttavia, nei miei frequenti controlli nella cartella pubblica in cui vengono salvate le immagini, trovo spesso dei file che non rispettano questi limiti. Formati diversi, dimensioni assurde, anche svariati mega...
Mi chiedo da cosa dipenda questa interpretazione del codice... com'è possibile eludere i controlli?
Vi posto lo script:
Codice PHP:
// QUESTE RIGHE RENDONO LO SCRIPT COMPATIBILE CON LE VERSIONI
// DI PHP PRECEDENTI ALLA 4.1.0
if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;
if(!isset($_SERVER)) $_SERVER = $HTTP_SERVER_VARS;
/********************* VARIABILI DA SETTARE ********************/
// Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
$upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/miacartella";
// Eventuale nuovo nome da dare al file uploadato
$new_name = "";
// Se $new_name è vuota, il nome sarà lo stesso del file uploadato
$file_name = ($new_name) ? $new_name : $_FILES["upfile"]["name"];
if(trim($_FILES["upfile"]["name"]) == "") {
die("Non hai indicato il file da uploadare !");
}
if(@is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
@move_uploaded_file($_FILES["upfile"]["tmp_name"], "$upload_dir/$file_name")
or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.
".$upload_dir." ");
} else {
die("Problemi nell'upload del file " . $_FILES["upfile"]["name"]);
}
$allowed_types = array("image/gif","image/pjpeg","image/jpeg");
if(!in_array($_FILES["upfile"]["type"],$allowed_types)) {
die("Tipo non consentito. Scegliere un'immagine di tipo: " . implode(",", $allowed_types) . ".");
}
$DIMENSIONE = 9999;
if ($_FILES["upfile"]["size"]>$DIMENSIONE) {
die("Peso troppo elevato. Scegliere un'immagine che pesi meno di 10 kb.");
}
$indirizzo = "http://miosito.it/miacartella".$_FILES["upfile"]["name"];
$size = getimagesize("$indirizzo");
$height = $size[1];
$width = $size[0];
if ($height>100 || $width>100) {
die("Dimensioni troppo grandi. Scegliere un'immagine grande al massimo 100x100 pixel");
}
Grazie a tutti anticipatamente