Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di iMet
    Registrato dal
    Jan 2009
    Messaggi
    168

    [PHP] Upload dati e immagine in database mySQL

    Ciao a tutti, sto lavorando sull' n-esimo codice php, spiego subito, voglio creare un form per cui compilati i vari campi e cliccato il tasto di Upload, i dati vengano caricati all'interno della tabella che ho creato ma soprattutto all'interno di ben precisi record.
    La mia tabella è formata da un ID (chiave primaria), modello, portata, anno, e stato. Voglio dunque che si aggiornino nel database tramite form.
    Questo è il form che ho creato:
    codice:
    <form action="index.php?menu=upload_usati" method="post" enctype="multipart/form-data"> 	
    
    
    Foto:
         
    <input type="file" size="25" name="photo"></p>     
    
    
    Modello:
         
    <input type="text" maxlength="50" size="50" name="modello"></p>     
    
    
    Portata:
         
    <input type="text" maxlength="20" size="20" name="portata"></p>    
    
    
    Anno:
         
    <input type="text" maxlength="10" size="10" name="anno"></p>     
    
    
    Stato:
         
    <textarea class="box"  rows="6" cols="30" name="stato"></textarea></p>     
    
    <input type="submit" value="Upload"> 
    </form>
    e questo è il php che sto cercando di scrivere:
    Codice PHP:
    <?php  
    // connect to database  

    mysql_connect("localhost","root","root") or die(mysql_error()); 
    mysql_select_db("toneattidb") or die(mysql_error());
      
    // file properties  
    if (isset($_FILES['photo'])) $file $_FILES['photo'];  
    if (isset(
    $_FILES['modello'])) $modello $_FILES['modello']; 
    if (isset(
    $_FILES['portata'])) $portata $_FILES['portata'];  
    if (isset(
    $_FILES['anno'])) $anno $_FILES['anno'];  
    if (isset(
    $_FILES['stato'])) $stato $_FILES['stato']; 
    if (!isset(
    $file))     
    echo 
    "Prego selezionare una foto!"
    else 
    {     
    $image addslashes(file_get_contents($_FILES['photo']));     
    $image_size getimagesize($_FILES['photo']);          
    if (
    $image_size==FALSE)         
    echo 
    "Il file selezionato non è un immagine.";     
    else     
    {         
    if (!
    $insert mysql_query("INSERT INTO tblusati VALUES 
    ('','
    $image','$modello','$portata','$anno','$stato')"))             
    echo 
    "Problema nel upload dei dati!";     

    }  
    ?>
    Sono arrivato fin qui da solo, ma ho bisogno di aiuto perchè continuo a ricevere errori, e in oltre vorrei che ci fosse una rule che costringesse a compilare tutti i campi prima di permettere l'upload.

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    che errori?
    cmq tranne il file le altre var le recuperi con $_POST
    If you think your users are idiots, only idiots will use it. DropBox

  3. #3
    Utente di HTML.it L'avatar di iMet
    Registrato dal
    Jan 2009
    Messaggi
    168
    Originariamente inviato da homerbit
    che errori?
    cmq tranne il file le altre var le recuperi con $_POST
    Questa stringa ( if (isset($_FILES['photo'])) ) l'avevo inserita per ovviare al Undefine idex error, ho trovato in rete la "soluzione" anche se mi sembra una cosa un po' spartana, comunque l'insert non funziona, tralasciando il fatto che nel codice spostato la variabile $image è in realtà $photo, ho postato il codice prima della modifica...

  4. #4
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    per ora ti ho corretto il problema dell'upload delle immagini.
    Il codice è ampiamente commentato, devi crearti solo la cartella "images" dove risiede il file responsabile dell'upload (credo sia index.php)
    Poi passi alla validazione degli altri campi ed infine realizzi la query
    codice:
    <form action="index.php?menu=upload_usati" method="post" enctype="multipart/form-data"> 	
    
    
    Foto:
         
    <input name="image" type="file" size="25" /></p>     
    
    
    Modello:
         
    <input type="text" maxlength="50" size="50" name="modello"></p>     
    
    
    Portata:
         
    <input type="text" maxlength="20" size="20" name="portata"></p>    
    
    
    Anno:
         
    <input type="text" maxlength="10" size="10" name="anno"></p>     
    
    
    Stato:
         
    <textarea class="box"  rows="6" cols="30" name="stato"></textarea></p>     
    
    <input type="submit" value="Upload"> 
    </form>
    Codice PHP:
    <?php  
    // connect to database  
    /*
    mysql_connect("localhost","root","root") or die(mysql_error()); 
    mysql_select_db("toneattidb") or die(mysql_error());
     */ 
    // file properties  
    if (!isset($modello)) $modello $_POST['modello']; 
    if (!isset(
    $portata)) $portata $_POST['portata'];  
    if (!isset(
    $anno)) $anno $_POST['anno'];  
    if (!isset(
    $stato)) $stato $_POST['stato']; 


    do {
      if (
    is_uploaded_file($_FILES['image']['tmp_name'])) {
        
    // Informazioni sull'immagine
        
    list($width$height$type$attr) = getimagesize($_FILES['image']['tmp_name']);
        
    // Formati GIF, JPG o PNG
        
    if (($type!=1) && ($type!=2) && ($type!=3)) {
          
    $msg "

    Formato non corretto!!</p>"
    ;
          break;
        }
        
    // Verifico che sul sul server non esista già un file con lo stesso nome
        
    if (file_exists('upload_img/'.$_FILES['image']['name'])) {
          
    $msg "

    File già esistente sul server..</p>"
    ;
          break;
        }
        
    // Sposto il file nella cartella desiderata
        
    if (!move_uploaded_file($_FILES['image']['tmp_name'], 'images/'.$_FILES['image']['name'])) {
          
    $msg "

    Errore nel caricamento dell'immagine!!</p>"
    ;
          break;
        }
      } 
    $msg "Immagine caricata correttamente";
    } while (
    false);
    echo 
    $msg;
    ?>
    ..lo script è testato e funziona
    If you think your users are idiots, only idiots will use it. DropBox

  5. #5
    Intanto ti ringrazio, mi hai davvero dato un grande aiuto!!
    Ti domando un ultima cosa, se volessi caricare l'immagine sul DB utilizzando un blob senza cartella? Credo vada meglio poi per visualizzare l'intera riga della tabella nella pagina accostando foto, nome modello, anno ecc ecc dicendo via php di visualizzare i contenuti dei record e disporli in celle di tabella...
    sys

  6. #6
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    nel db andrà caricato il NOME dell'immagine, completo di estensione e magari anche di directory "images/" (altrimenti come le leggi?)
    poi lo interroghi e visualizzi quello che ti pare mediante i tag html
    If you think your users are idiots, only idiots will use it. DropBox

  7. #7
    Utente di HTML.it L'avatar di iMet
    Registrato dal
    Jan 2009
    Messaggi
    168
    Originariamente inviato da homerbit
    nel db andrà caricato il NOME dell'immagine, completo di estensione e magari anche di directory "images/" (altrimenti come le leggi?)
    poi lo interroghi e visualizzi quello che ti pare mediante i tag html
    Così però sposto la foto nella cartella, ma vorrei una porzione di codice che inviasse le informazioni dei campi del form nelle rispettive colonne nel database, per quello avevo tentato di usare
    Codice PHP:
    if (!$insert mysql_query("INSERT INTO tblusati VALUES  
    ('','
    $image','$modello','$portata','$anno','$stato')")) 

  8. #8
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    mi sa che le tue conoscenze sono mooolto acerbe, in ogni caso per popolare il tuo db con i dati provenienti dal form (preventivamente validati) devi fare così
    Codice PHP:
    //connessione al db
    $con mysql_connect("localhost","root","root");
    if (!
    $con)
      {
      die(
    'Errore di connessione: ' mysql_error());
      }
    //selezione del db
    mysql_select_db("toneattidb"$con);
    // inserimento di un nuovo record nella table
    $sql="INSERT INTO tblusati  (image, modello, portata, anno, stato)
    VALUES
    ('
    $image','$modello','$portata','$anno','$stato')";

    if (!
    mysql_query($sql,$con))  {
      die(
    'Error: ' mysql_error());
      }
    echo 
    "query eseguita correttamente"
    If you think your users are idiots, only idiots will use it. DropBox

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.