Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Problema con upload $_FILES

    Ho un semplice form per news che l'utente compila inserendo anche un'immagine poi i dati passano alla pagina
    save.php che provvede a salvare il nome del file in una tabella MySql.
    Tutto perfetto in locale ma sul server nel database non viene salvato il nome del file $_FILES['immagine']['name']
    ma il nome temporaneo $_FILES['immagine']['tmp_name']

    All'inizio dello script assegno
    $_SESSION['immagine'] = $_FILES['immagine']['name'];
    è questa variabile di sessione che poi infilo nel db
    ho provato a chiamarla con un echo a fine script
    e risulta corretta (nome dell'immagine) ma nel db
    continua a essere inserito il nome del file temporaneo

    Allego il codice.....
    qualche suggerimento!!



    Codice PHP:
    <?php
    session_start
    ();
    include_once(
    "../config.php");
    include_once(
    "../auth_lib.php");
    // verificare se l'utente è gia loggato
    list($status$user) = auth_get_status();
    //caso positivo
    if($status == AUTH_LOGGED){
    //assegnazione variabili di sessione
    $_SESSION['titolo'] = $_POST['titolo'];
    $_SESSION['testo'] = $_POST['testo'];
    $_SESSION['ante'] = $_POST['ante'];
    $_SESSION['immagine'] = $_FILES['immagine']['name'];
    $_SESSION['giorno'] = $_POST['giorno'];
    $_SESSION['mese'] = $_POST['mese'];
    $_SESSION['anno'] = $_POST['anno'];
    include (
    "news_lib.php");
    include (
    "../layout/layout.php");
    include_once(
    "../coldx.php");
        
    doctype();
        
    head();
        
    body(news);
    //-----------------------------------------------------------------------------------------------------------------------------------------------------------------
        
    ?>
        <?php
        
    // controllo varibili provenienti dal form negativo
        
    if (trim($_SESSION['titolo']) == "" OR trim($_SESSION['testo']) == "" OR trim($_SESSION['ante']) == "" OR trim($_SESSION['giorno']) == "" OR trim($_SESSION['mese']) == ""OR trim($_SESSION['anno']) == ""){
            echo 
            
    "<h1 class=\"allert\">ATTENZIONE !!</h1>\n".
            
    "

    Titolo, data, testo, argomento e categoria dell'articolo sono tutti campi obbligatori!</p>\n"
    .
            
    "

    Torna <a title=\"torna indietro\" href=\"javascript:history.back();\"> indietro </a></p>\n "
    ;
            
    //ritogliamo le slashes dalle variabili
            
    $_SESSION['titolo'] = resumetext($_SESSION['titolo']);
            
    $_SESSION['testo'] = resumetext($_SESSION['testo']);
            
    $_SESSION['ante'] = resumetext($_SESSION['ante']);
            
    $_SESSION['immagine'] = resumetext($_SESSION['immagine']);
            
    $_SESSION['mese'] = resumetext($_SESSION['mese']);
            
    $_SESSION['giorno'] = resumetext($_SESSION['giorno']);
            
    $_SESSION['anno'] = resumetext($_SESSION['anno']);
        }    
        
    //controllo variabili superato
        
    else{
            
    // prepara le singole variabili per l'inserimento nel database
            
    $_SESSION['titolo'] = preparetext($_SESSION['titolo']);
            
    $_SESSION['giorno'] = preparetext($_SESSION['giorno']);
            
    $_SESSION['mese'] = preparetext($_SESSION['mese']);
            
    $_SESSION['anno'] = preparetext($_SESSION['anno']);
            
    $_SESSION['ante'] = preparetext($_SESSION['ante']);
            
    $_SESSION['testo'] = preparetext($_SESSION['testo']);
            
    $_SESSION['immagine'] = preparetext($_SESSION['immagine']);
            
    // conversione della data in un solo record con mktime
            
    $data mktime("0""0""0"$_SESSION['mese'], $_SESSION['giorno'], $_SESSION['anno']);
            
    $db mysql_connect($_CONFIG['host'], $_CONFIG['user'], $_CONFIG['pass']);
            if (
    $db == FALSE)
                die (
    "Impossibile connettersi al server database: Verificare i parametri nel file config.php");
            
    mysql_select_db($_CONFIG['dbname'], $db)
                or die (
    "Impossibile trovare il database. Verificare i parametri nel file config.php");    
            
    //In caso l'utente tenti di ricaricare la pagina evitiamo la duplicazione del record appena inserito
            
    $query "SELECT * FROM articoli WHERE titolo = '$_SESSION[titolo]' AND testo = '$_SESSION[testo]' AND ante = '$_SESSION[ante]' AND giorno = '$_SESSION[giorno]' AND mese = '$_SESSION[mese]' AND anno = '$_SESSION[anno]'";    
            
    $result mysql_query($query$db);
            
    $num mysql_num_rows($result);
            if (
    $num >0){
                
    $_SESSION['titolo'] = "";
                
    $_SESSION['testo'] = "";
                
    $_SESSION['ante'] = "";
                
    $_SESSION['giorno'] = "";
                
    $_SESSION['mese'] = "";
                
    $_SESSION['anno'] = "";
                echo 
                
    "<h1>l'articolo &eacute; gi&aacute; stato inserito </h1>\n".
                
    "

    Ritorna al <a title\"torna al pannello di controllo\" href=\"abin.php?
    $year==0&$month==0\">pannello</a> di amministazione</p>\n".
                
    "





     "
    ;
            }
            else{
                if ( 
    $_SESSION['immagine'] !== "" ) { # controlla innanzitutto le dimensioni del file
                    
    $immagine $_FILES['immagine']['tmp_name'];
                    
    $immagine_name $_FILES['immagine']['name'];
                    
    $immagine_size $_FILES['immagine']['size'];
                    echo 
    $_FILES['immagine']['name'];
                    if (
    $immagine_size 900000 ) { # se meno di 9 KB
                        
    if (copy($immagine,"/home/web/myservername/website/news.01/immagini/$immagine_name")){ # lo copia in una nuova posizione POSIZIONE REMOTA 
                            
    echo "<h1>Upload del file riuscito !</h1>";
    unlink($immagine);  # cancella il file temporaneo

                        //---------------------------------------------------------------------------------------------------

                            // inizia la procedura di creazione della thumb
                            //---------------------------------------------------------------------------------------------------

                            
    $thumb=new thumbnail("/home/web/myservername/website/news.01/immagini/$immagine_name");    // Gennera l'immagine e setta il nome
                            
    $thumb->size_width(300);                        // setta la larghezza massima dell'immagine, oppure
                            //$thumb->size_height(300);                        // setta l'altezza massima dell'immagine, oppure
                            //$thumb->size_auto(100);                            // setta l'atezza o la larghezza massima in modo automatico
                            
    $thumb->jpeg_quality(100);                        // [OPZIONALE] setta la qualita per le immagini jpeg (0 - 100) (massima - minima), default = 75
                            //$thumb->show();                                // mostra la thumbnail
                            
                            
    $thumb->save("/home/web/myservername/website/news.01/immagini/$immagine_name");        // salva la thumbnail in un file
                        

                        else {
                            echo 
    "<h1>Upload del file fallito !</h1> 

    Verificare i permessi della directory \"foto\": i permessi di scrittura devono essere a chmod 777. Se il problema persiste contattare il webmaster.</p>
    "
    ;
                            exit;
                        }
                    } 
                    else {
                        echo 
    "<h1>Spiacente, il file da inviare non deve superare le dimensioni di 9 MB</h1>
    "
    ;
                    }
                }
                else {
                    
    $_SESSION['immagine'] = "view.png" ;
                }
                
    //procediamo con l'iserimento del nuovo record nel database
                
    $query "INSERT INTO articoli (data, titolo, testo, ante, immage, giorno, mese, anno) VALUES ('$data', '$_SESSION[titolo]', '$_SESSION[testo]', '$_SESSION[ante]', '$_SESSION[immagine]', '$_SESSION[giorno]', '$_SESSION[mese]', '$_SESSION[anno]')";
                
    //query riuscita, azzeriamo le variabili di sessione
                
    if (mysql_query($query$db)){
                    
    $_SESSION['titolo'] = "";
                    
    $_SESSION['testo'] = "";
                    
    $_SESSION['ante'] = "";
                    
    $_SESSION['immagine'] = "";
                    
    $_SESSION['giorno'] = ""
                    
    $_SESSION['mese'] = "";
                    
    $_SESSION['anno'] = "";
                    echo 
                    
    "<h1>Il nuovo articolo &eacute; stato inserito correttamente</h1>\n".
                    
    "

    Ritorna al <a title\"torna al pannello di controllo\" href=\"index.php?
    $year==0&$month==0\">pannello</a> di amministazione</p>\n".
                    
    "





     "
    ;
                }
                else {
                
    // query fallita messaggio d'errore
                    
    echo 
                    
    "<h1 class=\"allert\">ATTENZIONE !!</h1>

    \n"
    .
                    
    "

    Impossibile inserire l'articolo nel database contattare l'amministratore e verificare il file confing.php</p>\n"
    .
                    
    "
    \n"
    .
                    
    "

    Ritorna al <a title\"ritorna alla pagina principale\" href=\"/abin/abin.php?
    $year==0&$month==0\">pannello</a> di amministazione</p> ";
                }
            }
        }
        
    ?>
    BluesHome

  2. #2

    Up Up

    up up
    help help
    BluesHome

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.