allora, ho un form con alcuni campi testuali e due campi di selezioni di file facoltativi, nella pagina di inserimento effettivo nel database e upload dei file uso questo codice (se avete correzioni fatele pure )
Codice PHP:
    $immagine_url="";
    
$allegato_url="";
    
$immagine_valida="no";
    
$allegato_valido="no";
    
$query "SELECT MAX(id) FROM news";
    
$result mysql_query($query);
    
$row mysql_fetch_array($result);
    
$new_id=$row[0]+1;
    
// CHECK IMMAGINE
    
if(isset($HTTP_POST_FILES['immagine'])) { if($HTTP_POST_FILES['immagine']['tmp_name']!="") {
        if (!
is_uploaded_file($HTTP_POST_FILES['immagine']['tmp_name'])) {
            echo 
"
Errore nel caricamento dell'immagine! <a href=\"javascript:history.go(-1)\">Riprova</a>."
;
            
unlink($HTTP_POST_FILES['immagine']['tmp_name']);
            }
        else {
            
$maxfilesize=2000000;
            if (
$HTTP_POST_FILES['immagine']['size'] > $maxfilesize) {
            echo 
"
Il file è troppo pesante. Prova a ridimensionare l'immagine e <a href=\"javascript:history.go(-1)\">riprovare</a>."
;
            
unlink($HTTP_POST_FILES['immagine']['tmp_name']);
            } else {
                if(
$HTTP_POST_FILES['immagine']['type'] != "image/gif" AND $HTTP_POST_FILES['immagine']['type'] != "image/pjpeg" AND $HTTP_POST_FILES['immagine']['type'] !="image/jpeg") { 
                echo 
"
L'immagine non è in un formato consentito (GIF o JPG). Convertirla e <a href=\"javascript:history.go(-1)\">riprovare</a>."
;
                
unlink($HTTP_POST_FILES['immagine']['tmp_name']);
                } else {
                    
copy($HTTP_POST_FILES['immagine']['tmp_name'],"immagini/I_".$new_id.strrchr($HTTP_POST_FILES['immagine']['name'],'.'));
                    
unlink($HTTP_POST_FILES['immagine']['tmp_name']);
                    
$immagine_valida="si";
                    
$immagine_url="I_".$new_id.strrchr($HTTP_POST_FILES['immagine']['name'],'.');
                }
            }
        }}
    } else 
$immagine_valida="si";
    
// CHECK FILE ALLEGATO;
    
if(isset($HTTP_POST_FILES['allegato'])) { if($HTTP_POST_FILES['allegato']['tmp_name']!="") {
        echo 
"settato ";
        if (!
is_uploaded_file($HTTP_POST_FILES['allegato']['tmp_name'])) {
            echo 
"
Errore nel caricamento dell'allegato! <a href=\"javascript:history.go(-1)\">Riprova</a>."
;
            @
unlink($HTTP_POST_FILES['allegato']['tmp_name']);
            }
        else {
            echo 
"check ";
            
$maxfilesize=2000000;
            if (
$HTTP_POST_FILES['allegato']['size'] > $maxfilesize) {
            echo 
"
Il file è troppo pesante. Caricare un file più piccolo <a href=\"javascript:history.go(-1)\">riprovare</a>."
;
            
unlink($HTTP_POST_FILES['allegato']['tmp_name']);
            } else {
                
copy($HTTP_POST_FILES['allegato']['tmp_name'],"allegati/A_".$new_id.strrchr($HTTP_POST_FILES['allegato']['name'],'.'));
                
unlink($HTTP_POST_FILES['allegato']['tmp_name']);
                
$allegato_valido="si";
                
$allegato_url="A_".$new_id.strrchr($HTTP_POST_FILES['allegato']['name'],'.');
            }
        }}
    } else 
$allegato_valido="si";
    
// SE FILE VALIDI (O NON CARICATI) ESEGUI LA QUERY
    
if($immagine_valida=="si"&& $allegato_valido=="si") {
        
$titolo=htmlspecialchars($_POST['titolo']);
        
$testo=$_POST['testo'];
        
$data=date("Y-m-d");
        
$testo=str_replace("

"
,"<p style=\"margin: 0; padding: 0;\">",$testo);
        
$query "INSERT INTO news VALUES ('','$data','$titolo','$testo','$immagine_url','$allegato_url')";
        
mysql_query($query);
        echo 
"INSERIMENTO AVVENUTO CON SUCCESSO!

<a href=\"elenco.php\">Torna all'elenco</a>
"

solo che non funziona l'upload dei file sul server.
Quando tento di inserire una news me la inserisce tranquillamente sia che i campi file siano pieni o vuoti, il rpoblema è che pare che i due if
if(isset($HTTP_POST_FILES['immagine']))
e
if(isset($HTTP_POST_FILES['allegato']))
diano sempre risultato falso, non permettendo di eseguire le istruzioni di caricamento....

come fare?


il form è questo:
Codice PHP:
<form name="upload" enctype="multipart/form-data" action="insert.php" method="post">


[
b]TITOLO[/b]** (max 255 caratteri)
<
input type="text" name="titolo" size="100" maxlength="255" value="" /></p>


[
b]TESTO[/b]** (max 65.535 caratteri)
<
textarea rows="14" cols="100" name="testo" ></textarea></p>


[
b]SELEZIONA UNA IMMAGINE[/b] (solo JPGJPEG e GIF max 2Mbyte)
<
input type="file" name="immagine" size="60" /></p>


[
b]ALLEGA UN FILE[/b] (max 2Mbyte)
<
input type="file" name="allegato" size="60" /></p>
<
input type="submit" name="Invia" value="Invia">
</
form
ho sbagliato qualcosa? voi come li caricate i file?

grazie in anticipo per l'aiuto!
Ste.