+ Rispondi
Pagina 1 di 2 1 2 UltimaUltima
Risultati da 1 a 10 di 17

Discussione: Upload immagini nel db e nella cartella

  1. #1
    Neofita della community
    reputazione complessiva: 1 1

    Messaggi
    56

    Upload immagini nel db e nella cartella

    STO CERCANDO DI INSERIRE UN IMMAGINE NEL DB E NELLA CARTELLA MA NON SO PERCHE', MI POPOLA IL DM MA DA UN MESSAGGIO DI ERRORE "Specificare un file" E NON CREA LA CARTELLA, QUANDO LA PROCEDURA MI SEMBRA CORRETTA; POSTO IL CODICE:

    FORM.PHP

    Codice:
    <?php
    
    # questo codice ti permetterà di rivisualizzare i dati nel caso non siano stati inseriti dati corretti
    
    if(isset($_POST["submit"])){
    
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    
    }
    
    ?>
    
    <form method="post" action="insert.php">
    <table>
    <tr>
        <td><b>Nome</b></td>
        <td width="50"></td>
        <td><input type="text" name="nome" value="<?php echo $nome ?>"></td>
    </tr>
    <tr>
        <td><b>Cognome</b></td>
        <td></td>
        <td><input type="text" name="cognome" value="<?php echo $cognome ?>"></td>
    </tr>
    <tr>
        <td><b>File</b></td>
        <td></td>
        <td><input type="file" name="file1"></td>
    </tr>
    <tr>
        <td height="10"></td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td><input type="submit" name="submit" value="Inserisci"></td>
        <td></td>
        <td><input type="reset" name="reset" value="Cancella"><br /></td>
    </tr>
    
    </table>
    </form>
    INSERT.PHP

    Codice:
    <?
    
    include('connessione.php');
    
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    
    #il codice sottostante ti permette di controllare se è sato inserito qualcosa nel form ed eliminare gli spazi all'inizio ed alla fine del campo interessato (funzione trim). Nel caso ci siano degli errori ti verrà visualizzato una frase con scritto che i campi nome ed email devono essere riempiti ed ovviamente il link per tornare indietro. Il link per tornare indietro è in javascript che ha la stessa funzione del pulsante indietro dei browser
    
    if (trim($nome) == "" OR trim($cognome) == ""){
    echo "I campi Nome ed email devono essere riempiti! <br />";
    //require "form.php";
    
    echo "<a href=\"javascript:history.back()\">Torna Indietro</a>";
    }
    
    else{
    
    # se i dati sono stati inseriti correttamente passiamo a metterli nel database in questo modo:
    
    //Funzioni utili...
    //Funzione Replace " " in "_" (evitiamo possibili errori)
    function fSpace($string)
    {
        return str_replace(" ", "_", $string);
    }
    
    //Funzione per ricavare l' estensione di un File
    function fExt($string)
    {
        //Controllo il file
        $trova_punto = explode(".", $string);
        $estensione = $trova_punto[count($trova_punto) - 1];
        $estensione = strtolower($estensione);
        
        // Se non ci sono estensioni
        if (isset($trova_punto[1]) == FALSE)
        {
            return '';
        }
        //Ritorno il valore dell' estensione
        return $estensione;
    }
    //Fine funzioni
    
    //Effettuo l' upload dell' immagine...
    $uploaddir = 'uploads/';
    $uploadfile = fspace($_FILES['file1']['name']);
    $upload = $uploaddir . $uploadfile;
    
    //Controllo che sia stato specificato un file
    if(!strlen($uploadfile) == 0)
    {
        //Controllo l' estensione del file
        if((fExt($uploadfile) == 'gif') or (fExt($uploadfile) == 'jpeg'))
        {
            //Creo la cartella
            mkdir($uploaddir);
            
            //Eseguo l' upload
            if(move_uploaded_file($_FILES['file1']['tmp_name'], $upload))
            {
                //Upload eseguito con successo
                echo "Upload eseguito correttamente";
                echo "<p><img src='". $upload ."'>";
                echo "<p><a href='form.php'>Carica una nuova immagine</a>";
            }else{
                //Upload fallito
                echo "Upload fallito !";
            }
        }else{
            //Messaggio di errore
            echo "File non valido";
            echo "<br><a href='form.php'>Torna dietro</a>";
        }
    }else{
        //Messaggio di errore
        echo "Specificare un file !";
        echo "<br><a href='form.php'>Torna dietro</a>";
    }
    
    $query = "INSERT INTO artisti (nome, cognome, file1) VALUES ('$nome', '$cognome', 'file1')";
    
    $result = mysql_query($query, $link) or die("Query failed: " . mysql_error());
    
    echo "i dati sono stati inseriti correttamente <br />";
    //echo "<a href=\"view.php\">vedi</a>";
    
    }
    
    mysql_close($link);
    
    ?>

  2. #2
    Moderatore Globale L'avatar di Master85
    reputazione complessiva: 24 24

    Messaggi
    4,563
    Blogs
    13
    Benvenuto in MasterDrive.it,
    inizio col ricordarti alcuni punti fondamentali del nostro regolamento ed inoltre ti invito a leggerlo con molta attenzione:

    1. Scrivere in maiuscolo equivale ad urlare... Non e' consentito;
    2. Il codice che hai proposto mi ricorda "vagamente" un articolo da me scritto, tempo fa (PHP 4.x: Upload di immagini con PHP)

    Adesso passo alle domande:

    1. Sei nuovo di PHP ?
    2. Hai mai programmato prima ?

    In attesa di risposte,
    felice di aiutarti,
    Giuseppe Leone

    P.S.
    Ecco il link per il regolamento: http://forum.masterdrive.it/comunicazioni-dalla-comunit-16/announcement-regolamento-ufficiale-comunit.html

  3. #3
    Neofita della community
    reputazione complessiva: 1 1

    Messaggi
    56
    Ciao Giuseppe, grazie per i tuoi consigli e perdona i miei errori non voluti, non uso spesso i forum. Rispondo alle tue domande allora:

    Il codice che hai proposto mi ricorda "vagamente" un articolo da me scritto, tempo fa (PHP 4.x: Upload di immagini con PHP)
    Si ho preso spunto dal tuo e ho inserito altro codice per inserire il tutto nel db;

    1. Sei nuovo di PHP ?
    2. Hai mai programmato prima ?
    Si conosco pochissimo la programmazione, conosco bene solo l'html.

    Ho necessita di creare una scheda dove l'utente possa inserire, oltre i dati anagrafici anche 3 foto e poi fare una pagina che mi recuperi i dati anagrafici
    + le tre foto di quella persona. Purtroppo si trova poco o zero su tutti i siti che ho girato che faccia tutto questo. L'unico script che mi permetteva di fare qualcosa è il tuo quindi mi sono messo a smanettare un po su questo.

    Posto il codice della pagina insert.php diciamo sistemato per una piccolissima parte.

    Codice:
    <?
    
    include('connessione.php');
    
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    
    #il codice sottostante ti permette di controllare se è sato inserito qualcosa nel form ed eliminare gli spazi all'inizio ed alla fine del campo interessato (funzione trim). Nel caso ci siano degli errori ti verrà visualizzato una frase con scritto che i campi nome ed email devono essere riempiti ed ovviamente il link per tornare indietro. Il link per tornare indietro è in javascript che ha la stessa funzione del pulsante indietro dei browser
    
    if (trim($nome) == "" OR trim($cognome) == ""){
    echo "I campi Nome ed email devono essere riempiti! <br />";
    //require "form.php";
    
    echo "<a href=\"javascript:history.back()\">Torna Indietro</a>";
    }
    
    else{
    
    # se i dati sono stati inseriti correttamente passiamo a metterli nel database in questo modo:
    
    //Funzioni utili...
    //Funzione Replace " " in "_" (evitiamo possibili errori)
    function fSpace($string)
    {
    	return str_replace(" ", "_", $string);
    }
    
    //Funzione per ricavare l' estensione di un File
    function fExt($string)
    { 
    	//Controllo il file
    	$trova_punto = explode(".", $string);
    	$estensione = $trova_punto[count($trova_punto) - 1];
    	$estensione = strtolower($estensione);
    	
    	// Se non ci sono estensioni
    	if (isset($trova_punto[1]) == FALSE)
    	{
    		return '';
    	}
    	//Ritorno il valore dell' estensione
    	return $estensione;
    }
    //Fine funzioni
    
    //Effettuo l' upload dell' immagine...
    $uploaddir = 'uploads/';
    $uploadfile = fspace($_FILES['file1']['name']);
    $upload = $uploaddir . $uploadfile;
    
    //Controllo che sia stato specificato un file
    if(!strlen($uploadfile) == 0)
    {
    	//Controllo l' estensione del file
    	if((fExt($uploadfile) == 'gif') or (fExt($uploadfile) == 'jpeg') or (fExt($uploadfile) == 'jpg'))
    	{
    		//Creo la cartella
    		//mkdir($uploaddir);
    		
    		//Eseguo l' upload
    		if(move_uploaded_file($_FILES['file1']['tmp_name'], $upload))
    		{
    			//Upload eseguito con successo
    			echo "Upload eseguito correttamente";
    			echo "<p><img src='". $upload ."'>";
    			echo "<p><a href='form.php'>Carica una nuova immagine</a>";
    		}else{
    			//Upload fallito
    			echo "Upload fallito !";
    		}
    	}else{
    		//Messaggio di errore
    		echo "File non valido";
    		echo "<br><a href='form.php'>Torna dietro</a>";
    	}
    }else{
    	//Messaggio di errore
    	echo "Specificare un file !";
    	echo "<br><a href='form.php'>Torna dietro</a>";
    }
    
    $query = "INSERT INTO `artisti` (`nome`, `cognome`, `file1`) VALUES ('".$nome."', '".$cognome."', '".$uploaddir."".$uploadfile."')";
    
    $result = mysql_query($query) or die("Query failed: " . mysql_error());
    
    echo "i dati sono stati inseriti correttamente <br />";
    //echo "<a href=\"view.php\">vedi</a>";
    
    }
    
    ?>
    In attesa di un tuo riscontro e se puoi di un tuo aiuto mirato a raggiungere il mio obiettivo.
    Condor1972

  4. #4
    Moderatore Globale L'avatar di Master85
    reputazione complessiva: 24 24

    Messaggi
    4,563
    Blogs
    13
    Bene Condor,
    scusa se rispondo solo ora, ma non ho avuto molto tempo in questi ultimi due giorni. Tornando al tuo problema, ti consiglio di acquistare un buon manuale tecnico sull'argomento e successivamente di leggere con piu' attenzione gli articoli. E' ovvio che il messaggio di errore che ti viene restituito e': "Specificare un file", poiche' non hai specificato l'enctype della form:

    Codice:
    <form enctype="multipart/form-data" method="post" action="mioUpload.php">
    ...
    A presto,
    Giuseppe Leone

    P.S.
    Per maggiori delucidazioni sull'upload di file in PHP cerca in questo stesso forum. Ne abbiamo gia' discusso in passato.

  5. #5
    Neofita della community
    reputazione complessiva: 1 1

    Messaggi
    56
    Ciao Giuseppe, in questi due giorni ho fatto qualcosa, purtroppo ho poco tempo per risolvere questo problema ho letto i vari script che trattano l'argomento ma nessuno come voglio io in maniera semplice e mirata.
    sono arrivato al seguente risultato:

    insert.php

    Codice:
    <?
    
    include('connessione.php');
    
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    
    if(trim($nome) == "" OR trim($cognome) == "")
      {
      echo "I campi Nome ed email devono essere riempiti! <br />";
      echo "<a href=\"javascript:history.back()\">Torna Indietro</a>";
      }
    
    else
    {
    function fSpace($string)
    {
    return str_replace(" ", "_", $string);
    }
    
    
    function fExt($string)
    {
    $trova_punto = explode(".", $string);
    $estensione = $trova_punto[count($trova_punto) - 1];
    $estensione = strtolower($estensione);
    
    if(isset($trova_punto[1]) == FALSE)
      {
      return '';
      }
    return $estensione;
    }
    
    $uploaddir = 'uploads/';
    
    for($i = 1; $i <= count($_FILES); $i++)
    {
    $uploadfile[$i] = fspace($_FILES["file".$i]['name']);
    $upload = $uploaddir.$uploadfile[$i];
    
    if(!strlen($uploadfile[$i]) == 0)
      {
      if((fExt($uploadfile[$i]) == 'gif') or (fExt($uploadfile[$i]) == 'jpeg') or (fExt($uploadfile[$i]) == 'jpg'))
        {
        if(move_uploaded_file($_FILES["file".$i]['tmp_name'], $upload))
          {
          //echo "<br />Upload eseguito correttamente per il campo # ".$i;
          //echo "<p><img src=\"".$upload."\" /></p>";
          //echo "<p><a href=\"form.php\">Carica una nuova immagine</a></p>";
          }
        else
           {
           echo "<br />Upload fallito per il campo # ".$i;
           }
        }
      else
         {
         echo "<br />File non valido per il campo # ".$i;
         echo "<br /><a href='form.php'>Torna dietro</a>";
         }
      }
    
    else
       {
       echo "<br />Specificare un file per il campo # ".$i;
       echo "<br /><a href=\"form.php\">Torna dietro</a>";
       }
    
    }
    
    $query = "INSERT INTO `artisti` (`nome`, `cognome`, `file1`, `file2`, `file3`) VALUES ('".$nome."', '".$cognome."', '".$uploadfile[1]."', '".$uploadfile[2]."', '".$uploadfile[3]."')";
    
    $result = mysql_query($query) or die("Query failed: " . mysql_error());
    
    echo "i dati sono stati inseriti correttamente <br />";
    }
    
    ?>
    ora devo creare due pagine:

    1) lista.php

    che mi tira fuori la lista con il nome e la prima immagine per ogni cliente inserito nel db e mi recupera l'immagine dalla cartella uploads, solo che l'immagine deve in realtà essere 93px X 72px e su ogni riga ci devono stare 4 clienti.

    2) view.php
    associato al nome del cliente nella file lista.php devo poter tirare poi fuori la scheda cliente con "nome, cognome, e i tre file immagini con dimensioni la prima 196px X 296px e le tre miniature 84px X 74px che cliccandoci sopra si ingrandiscono al posto della prima foto"

    per il file lista.php ci ho provato ma non riesco a tirare fuiori nulla e non so perchè

    lista.php

    Codice:
    <?php 
    
    include('connessione.php');
    
    $query="SELECT * FROM artisti WHERE id='. $_GET[id]'";
    
    $risultato = mysql_query($query) or die('Query non valida: ' . mysql_error()); 
    $riga = mysql_fetch_array($risultato);
    
    $nome=$riga[nome];
    $foto=$riga[file1];
    
    echo "$nome";
    echo "<img scr=\"uploads/$foto\"/>";
     
    ?>
    spero di aver reso l'idea di quello che devo cercare di fare.
    in attesa di una tua dritta ti ringrazio anticipatamente del tuo valido supporto.
    Condor1972

  6. #6
    Moderatore Globale L'avatar di Master85
    reputazione complessiva: 24 24

    Messaggi
    4,563
    Blogs
    13
    Ciao condor,
    consulta i nostri articoli tecnici e acquista un buon manuale,
    noi qui cerchiamo di offrire supporto per la risoluzione di problemi, ma non per fornire codice completo. Segui i miei consigli, ti troverai meglio e sicuramente potremo discutere riguardo problematiche piu' serie.

    A presto,
    Giuseppe Leone

  7. #7
    Neofita della community
    reputazione complessiva: 1 1

    Messaggi
    56
    Citazione Originariamente Scritto da Master85
    Ciao condor,
    consulta i nostri articoli tecnici e acquista un buon manuale,
    noi qui cerchiamo di offrire supporto per la risoluzione di problemi, ma non per fornire codice completo. Segui i miei consigli, ti troverai meglio e sicuramente potremo discutere riguardo problematiche piu' serie.

    A presto,
    Giuseppe Leone
    Ciao giuseppe, ci sto provando, ho letto i tuoi articoli e i post di altri ma non riesco a tirare furoi una soluzione ho inserito mezzo codice:

    db:
    Codice:
    CREATE TABLE `artisti` (
      `id` int(11) NOT NULL auto_increment,
      `nome` varchar(30) NOT NULL default '',
      `cognome` varchar(30) NOT NULL default '',
      `file1` varchar(40) default NULL,
      `file2` varchar(40) default NULL,
      `file3` varchar(40) default NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    
    -- 
    -- Dump dei dati per la tabella `artisti`
    -- 
    
    INSERT INTO `artisti` VALUES (15, 'pippo', 'franco', 'Colline_azzurre.jpg', 'Inverno.jpg', 'Ninfee.jpg');
    e lista.php

    Codice:
    <?php 
    
    include('connessione.php');
    
    $query="SELECT * FROM artisti WHERE id='. $_GET[id]'";
    
    $risultato = mysql_query($query) or die('Query non valida: ' . mysql_error()); 
    $riga = mysql_fetch_array($risultato);
    
    $nome=$riga[nome];
    $foto=$riga[file1];
    
    echo "$nome";
    echo "<img scr=\"uploads/$foto\"/>";
     
    ?>
    ma non riesco a tirare fuori un nulla dal db e nella cartella esistono le immagini e non so dove sbaglio.
    e

  8. #8
    Moderatore Globale L'avatar di Master85
    reputazione complessiva: 24 24

    Messaggi
    4,563
    Blogs
    13
    Devi fare un ciclo per scorrere i record della tabella:

    Codice PHP:
    <?php 

    include('connessione.php');

    $query="SELECT * FROM artisti WHERE id='. $_GET[id]'";

    $risultato mysql_query($query) or die('Query non valida: ' mysql_error()); 

    while(
    $riga mysql_fetch_assoc($risultato)){

        
    $nome=$riga['nome'];
        
    $foto=$riga['file1'];

        echo 
    "$nome";
        echo 
    "<img scr=\"uploads/$foto\"/>";
        echo 
    "<br /><br />";
    }
     
    ?>
    A presto,
    Giuseppe Leone

    P.S.
    Acquista un buon manuale tecnico e leggi attentamente

  9. #9
    Neofita della community
    reputazione complessiva: 1 1

    Messaggi
    56
    perdonami ma le sto provando tutte immagine a parte non riesco nemmeno a tirare fuori il testo;

    Codice:
    <?php 
    
    $db_host="localhost";
    $db_login="root";
    $db_pass="";
    $database="images_db"; 
    
    $link=mysql_connect("$db_host","$db_login","$db_pass")
    or die ("Non riesco a connettermi a <b>$db_host");
    
    $dbselect = mysql_select_db ($database)
    or die ("Non riesco a selezionare il db $database<br>"); 
    
    $id = $_GET['id'];
    
    $query="SELECT nome FROM artisti WHERE id='$id'";
    
    $risultato = mysql_query($query) or die('Query non valida: ' . mysql_error()); 
    
    while($riga = mysql_fetch_assoc($risultato)){
    
        $nome=$riga['nome'];
        //$foto=$riga['file1'];
    
        echo "$nome";
        //echo "<img scr=\"uploads/$foto\"/>";
        echo "<br /><br />";
    }
     
    ?>
    lo sto forzando in tutti i modi, se sostituisco $id con il valore di un id, ad esempio 1 mi tira fuori il valore nome corrispondente.

    Codice:
    $query="SELECT nome FROM artisti WHERE id=1";

    perch&#232; con la variabile non funge allora?

    come faccio a vedere gli errori o debbaggare?


  10. #10
    Moderatore Globale L'avatar di Master85
    reputazione complessiva: 24 24

    Messaggi
    4,563
    Blogs
    13
    Caro condor,
    debug ?

    Codice PHP:
    <?php

    $risultato 
    mysql_query($query);

    if(
    $risultato){
       echo 
    "ok";
    }else{
       echo 
    mysql_error();
    }
    ?>
    Ma se non specifichi che errore ti da, non possiamo aiutarti.

    A presto,
    Giuseppe Leone

    P.S.
    Stai pensando di acquistare un libro ????

+ Rispondi
Pagina 1 di 2 1 2 UltimaUltima

Discussioni Simili

  1. Risposte: 9
    Ultimo Messaggio: 17-08-2006, 15:47
  2. Caricare immagini nella stessa pagina!
    Di comm4all nel forum HTML, XML, CSS, Javascript, DOM
    Risposte: 1
    Ultimo Messaggio: 21-11-2005, 23:35
  3. PHP 4.x: Upload di immagini con PHP
    Di Master85 nel forum PHP Tutorials & How-To
    Risposte: 0
    Ultimo Messaggio: 31-10-2005, 10:41
  4. ASP.Net: Upload di immagini
    Di Master85 nel forum ASP 3.0, ASP .Net Tutorials & How-To
    Risposte: 0
    Ultimo Messaggio: 30-10-2005, 15:33
  5. cartella immagini
    Di Riccardo53 nel forum Microsoft Windows
    Risposte: 1
    Ultimo Messaggio: 07-08-2004, 14:19

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi