Visualizzazione risultati 1 fino 3 di 3

Discussione: Perche' online sbaglia a memorizzare il nome file nel database?

  1. #1
    Guest

    Predefinito Perche' online sbaglia a memorizzare il nome file nel database?

    Premetto che e' da pochissimo che mi interesso alla realizzazione di siti internet (1 mese circa) e ho moltissimo da imparare.

    ho realizzato un sito dove si possono anche uploadare immagini, l' upload nella cartella avviene correttamente, e se lo provo offline con easyphp funziona tutto bene, nel senso che memorizza correttamente il nome del file nella tabella del mio database MYSQL e riesco a visualizzare correttamente le immagini.
    Se pero' lo pubblico, al posto del nome corretto mi memorizza una cosa del genere /membri/.dummy/temp/phpqAT9wz

    dopo tutti i controlli necessari del file lo memorizzo cosi':

    $foto1=$_FILES['foto1']['name'];

    poi invio $foto1 alla tabella in un campo varchar

    qualcuno potrebbe gentilmente spiegarmi dove sbaglio?

    Ps tutti gli altri dati della tabella li salva e richiama correttamente.

    Grazie in anticipo.

  2. #2
    Guest

    Predefinito

    Non vedo errori, per quello che hai postato.
    Assicurati di non valorizzare nuovamente la variabile $foto1 e che il nome del campo del form si chiami 'foto1'.

    Fatto ciò, se ancora non risolvi, posta l'intero script.


    Ciao!

  3. #3
    Guest

    Predefinito

    In teoria di errori non ce ne dovrebbero essere, nel senso che offline funziona bene, quindi la variabile non la rivalorizzo e il campo e' ok.
    Codice PHP:
    // CONTROLLI UPLOAD FOTO 1

    do
    {
    // SE L' INVIO E' AVVENUTO
    if (is_uploaded_file($_FILES['foto1']['tmp_name']))
    {
    // CONTROLLO CHE IL FINE NON SUPERI I 120K
    if ($_FILES['foto1']['size'] > 120432)
    {
    $msg = "<p>La foto 1 non deve superare i 120 KB!!</p>";
    $controllo="no";
    break;
    }
    // OTTENGO LE INFORMAZIONE SULL' IMMAGINE
    list($width, $height, $type, $attr) = getimagesize($_FILES['foto1']['tmp_name']);
    // CONTROLLO CHE LE IMMAGINI IN PIXEL NON SUPERINO I 640x480
    if (($width > 640) OR ($height > 480))
    {
    $msg = "<p>Dimensioni foto 1 non corrette!!</p>";
    $controllo="no";
    break;
    }
    // CONTROLLO CHE IL FILE SIA GIF, JPG o PNG
    if (($type!=1) AND ($type!=2) AND ($type!=3))
    {
    $msg = "<p>Formato foto1 non corretto!!</p>";
    $controllo="no";
    break;
    }
    // VERIFICO CHE NON ESISTA UN FILE CON LO STESSO NOME
    if (file_exists('upload_img/'.$_FILES['foto1']['name']))
    {
    $msg = "<p>Foto 1 già esistente sul server. Rinominarla e riprovare.</p>";
    $controllo="no";
    break;
    }
    // SPOSTO IL FILE NELLA CARTELLA DESIDERATA
    if (!move_uploaded_file($_FILES['foto1']['tmp_name'], 'upload_img/'.$_FILES['foto1']['name']))
    {
    $msg = "<p>Errore nel caricamento della foto 1</p>";
    $controllo="no";
    break;
    }
    } elseif(
    $_FILES['foto1']['name']=="") // SE L' UPLOAD NON RIESCE CONTROLLO SE IL FILE E' STATO SELEZIONATO
    {
    $foto1="foto_non_disponibile.gif"; // SE NON E' STATO SELEZIONATO CARICO IMMAGINE NON DISPONIBILE
    }else // ALTRIMENTI DO ERRORE
    {
    $msg = "<p>Problemi caricamento foto 1</p>";
    $controllo="no";
    }
    } while (
    false); // FINE CICLO DO FOTO 1

    POI INSERISCO MEMORIZZO IL NOME DEL FILE

    // SE NON CI SONO PROBLEMI CON LA COMPILAZIONE, INSERISCO I DATI IN TABELLA
    if($controllo=="si")
    {
    // SE NON HO CARICATO IMMAGINE NON DISPONIBILE MEMORIZZO IL NOME DELLE FOTO
    if (isset($foto1))
    {
    $foto1=$foto1;
    }else
    {
    $foto1=$_FILES['foto1']['name'];
    }

    POI MANDO LA QUERY DI INSERT

    scusa se il codice e' un po' un casino, ma l' ho estrapolato da mille altri controlli per altri dati

    per intanto grazie
    Ultima modifica di debug : 03-01-2008 alle ore 18.39.14

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •