codice:
<html>
<body>
<form method="post" action="?" enctype="multipart/form-data">
<input type="hidden" name="action" value="upload" />
<label>Foto 1 :</label>
<input type="file" name="file1" />
<input type="submit" value="Carica online" />
</form>
<?php
// Verifica se è stata effettuata la richiesta
if (isset($_FILES['file1']) === true)
{
// Verifica se il file è stato uploadato
if (is_uploaded_file($_FILES['file1']['tmp_name']) === true)
{
// Controlla la dimensione del file
if ($_FILES['file1']['size'] <= 50 * 1024 /* Ovvero 50 Kbyte */)
{
// Prova a spostare il file nel percorso di destinazione
if (move_uploaded_file($_FILES['file1']['tmp_name'], 'upload/' . $_FILES['file1']['name']))
{
echo 'File caricato correttamente!';
}
else
{
echo 'Errore durante la copia del file uploadato!';
}
}
else
{
echo 'Troppo grande!';
}
}
else
{
echo 'Si è verificato un errore durante l\'upload!';
}
}
?>
</body>
</html>
beh, a parte un pò di graffe messe a caso (quelle del case non servono) è probabile che tu stia lavorando con i warning, ed i notice, spenti e quindi non vedevi gli errori
Ovviamente ti sconsiglio di usare questo script che ti ho sistemato perché è ESTRAMENTE facile effettuare attacchi tramite esso!!!
Non viene effettuato nessun check REALE sul contenuto, se uploadassi dei file .php me li ritroverei belli belli nella cartella upload. Quindi direi che come prima cosa è fondamentale controllare l'estensione del file, ma, oltre questo, direi che è ancora meglio verificare pure il magic header del file (i primi byte) che ad esempio per le JPEG corrispondono a JFIF\0 (ovvero 5 byte dove l'ultimo è il carattere NULL ergo quello con il codice ASCII zero) o per le GIF è presente all'inizio GIF87a o GIF89a (se non ricordo male)
In aggiunta a questo ci sarebbe da verificare se all'intero del file è presente <? o <?php in modo da controllare se si sta tentando l'inclusione di codice tramite un'immagine