Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    298

    Inserimento e upload file, problemi con HTTP_POST_FILES

    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.

  2. #2
    $HTTP_POST_FILES è caduto in disuso.
    Ora si deve usare $FILES per i file, $_POST per le variabili passate via post, $_GET per quelle passate in get, $_COOKIE eccetera.

    Prova a sostituire come ti ho detto e facci risapere.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    298
    uh... ups stasera provo!

    Grazie!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    298
    argh, ho provato a sostituire $HTTP_POST_FILES con $FILES ma niente...

    la condizione if(isset($FILES['immagine'])) è sempre falsa... e togliendola mi da questo errore: PHP Notice: Undefined variable: FILES in E:\Inetpub\wwwbase\associazionemaia\news_system\in sert.php on line 42 PHP Notice: Undefined variable: FILES in E:\Inetpub\wwwbase\associazionemaia\news_system\in sert.php on line 66
    che sono poi le linne dove c'è if($FILES['immagine']['tmp_name']!="") per controllare se ho inserito l'immagine o meno...


    come mai nonostante io invii un file mi dica sempre Undefined variable: FILES?!?



  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    298
    ehm, risolto! scusate scusate scusate!

    dovevo mettere $_FILES e non $FILES

  6. #6
    Beh..... ammetto che l'errore te l'ho fatto fare io!
    Purtroppo avevo scritto di fretta e non avevo ricontrollato.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    298
    no problem! grazie comunque!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.