Ti posto qui di seguito la parte di codice che ho utilizzato per caricare una foto da un form.
Il codice verifica se la foto supera le dimensioni massime e la riduce, altrimenti la carica così com'è. Ci sono abbastanza commenti... quindi credo non sia difficile da capire. In ogni caso per qualunque dubbio chiedi


Codice PHP:
$larghezzaMax 800//larghezza massima foto
$altezzaMax 600//altezza massima foto

if(isset($_POST["inviaFoto"]))
{
    
$path="images/foto";     //indirizzo di cartella dove inserire le foto
    
    
$erroreCaricamento false;
    
    
$filename $HTTP_POST_FILES['foto']['tmp_name']; //riferimento al file da caricare
    
$realname $HTTP_POST_FILES['foto']['name'];         //nome del file da caricare
    
$realname str_replace(" ""_"$realname); //sostituisce gli spazi vuoti nel nome
        
    
if(is_uploaded_file($filename)) //prova a caricare l'immagine
    
{    
        
//dimensioni del file
        
list($larghezzaOrig$altezzaOrig) = getimagesize($filename);
        
        
//se una delle dimensioni supera il limite crea un nuovo file della dimensione corretta
        
if($larghezzaOrig $larghezzaMax or $altezzaOrig altezzaMax
        {
            
//calcola il fattore di riduzione dell'immagine
            
$fattoreLarghezza $larghezzaOrig $larghezzaMax;
            
$fattoreAltezza $altezzaOrig $altezzaMax;
            
$fattoreRiduzione max($fattoreLarghezza$fattoreAltezza);
            
            
//determina le nuove dimensioni dell'immagine
            
$larghezzaNew = (int) $larghezzaOrig $fattoreRiduzione;
            
$altezzaNew = (int) $altezzaOrig $fattoreRiduzione;
            
            
//crea il file
            
$fileRidimensionato imagecreatetruecolor($larghezzaNew$altezzaNew);
            
$source imagecreatefromjpeg($filename);
            
            
// ridimensionamento
            
imagecopyresized($fileRidimensionato$source0000$larghezzaNew$altezzaNew$larghezzaOrig$altezzaOrig);
            
            
// salvataggio file
            
imagejpeg($fileRidimensionato$path."/".$realname100);
            
            
//elimina il file temporaneo creato
            
ImageDestroy($fileRidimensionato);
        
        }
        
        
//altrimenti semplicemente sposta il file temporaneo nel posto giuso
        
else
        {
            if(!
move_uploaded_file($filename$path."/".$realname))
                
$erroreCaricamento true;
        }
        
    }
    else
        
$erroreCaricamento true;
    
    if(!
$erroreCaricamento)
    {
        echo(
"<script language='JavaScript'>alert(\"Immagine correttamente caricata!\")</script>");
    }
    else
    {
        echo(
"<script language='JavaScript'>alert(\"ERRORE durante il caricamento del file! (probabilmente la foto è troppo grande)\")</script>");
    }