Salve,
Siccome in quasi ogni sito che faccio, ho bisogno di un Uploader...per non dover modificare ogni volta i miei script, avevo intenzione di crearmi una classe per l'Upload dei file, in modo da velocizzare il lavoro... (Attenzione, non voglio link a classi già fatte, voglio farla io con le mie opzioni e strutturata come dico io)

Ho scritto qui il codice (file chiamato upload.class.inc.php):

Codice PHP:
<?php

class Uploader {
 
 var 
$max_file_size 0;
 var 
$estensioni_consentite = array();
 var 
$opzioni_upload = array();
    
    function 
max_size($valore)
    {
        
$this->max_file_size $valore;
    }
    
    function 
estensioni_ok($array)
    {
        
$this->estensioni_consentite $array;
    }
    
    function 
opzioni_up($array)
    {
        
$this->opzioni_upload $array;
    }

    function 
upload_file($nome_campo_form$cartella_upload)
    {
     
$msg 0// se 0 estensione non consentita
     
$overwrite 1// se 0 rinomina
     
        
$nome_file $_FILES[$nome_campo_form]['name'];

        if(
$max_file_size != 0)
        {
            if(
$_FILES[$nome_campo_form]['size'] > $max_file_size)
            {
                die(
"Il File è troppo Grande!");
            }
        }
        
        foreach(
$this->opzioni_upload as $key => $value)
        {
            if(
$key == 'lock_ext')
            {
                 if(
$value == 1)
                 {
                    
$file_split explode(".",$nome_file);
                
                    
$estensione array_pop($file_split);
                
                    foreach(
$this->estensioni_consentite as $valore)
                    {
                        if(
$estensione == $valore)
                        {
                            
$msg 1;
                        }
                    }
                } else {
                    
$msg 1;    
                }    
            }
            
            if(
$key == 'overwrite')
            {
                if(
$value == 1)
                {
                    
$overwrite 1;
                } else {
                    
$overwrite 0;
                }
            }
            
        }
    
        if(
is_uploaded_file($_FILES[$nome_campo_form]['tmp_name']))
        {
            if(
$overwrite == 0)
            {
                if(
file_exists($cartella_upload.$nome_file))
                {
                    
$casnum rand(0,9999999999);
                    
                    
$filenome dividinome($nome_file);
                    
                    
$nome_file $filenome.'('.$casnum.').'.$estensione;
                }
            }
            
            if(
move_uploaded_file($_FILES[$nome_campo_form]['tmp_name'], $cartella_upload.$nome_file))
            {
                print(
"Upload Riuscito!");
            } else {
                die(
"Errore nell'Upload del File");
            }
        } else {
            die(
"Errore nell'Upload del File");
        }
    }
    
    function 
dividi_nome($nome)
    {
        
$fsplit explode('.',$nome);
        
        
$vai count($fsplit);
        
        
$i=0;
        
        while(
$i<$vai 1)
        {
            if(
$i==$vai 2)
            {
                
$nome.=$fsplit[$i];
            } else {
                
$nome.=$fsplit[$i].'.'
            }
            
         
$i++;
        }
        
     return 
$nome;
    }
    
}

?>
il codice del form di prova è questo:

codice:
<html>
<head>
<title>Prova</title>
</head>

<body>
<form action='esempio.php' method='POST'>
<input type='file' name='userfile' />
<input type='submit' value='upload' />
</form>
</body>

</html>
il File esempio.php a cui mando i dati è questo:

Codice PHP:
<?php
    
include("libs/upload.class.inc.php");
    
    
$test = new Uploader();
    
    
$test->opzioni_up(array('lock_ext' => 1'overwrite' => 1));
    
    
$test->estensioni_ok(array('zip''rar''mp3''jpg' 'gif'));
    
    
$test->upload_file('userfile','files/');
?>
Solo che il tutto non funziona, ma non riesco a capire il perchè, ho notato che printando la variabile: $nome_file della function upload_file, la variabile è vuota!
Dove sta l'errore???