• User Newbie

    Gestione immagini con PHP e MYSQL

    Buonasera,

    sto veramente uscendo matto. Sto realizzando un sito web che gestisce un catalogo libri e mi va tutto liscio tranne che per la gestione della copertina. Ho creato un form per l'upload dei dati e poi ovviamente una pagina per la visualizzazione del singolo libro con copertina, autore e quant'altro e un form per la prenotazione. Tuttavia il mio problema cade proprio sulla copertina...vorrei salvare un immagine presa da pc sul mio database per poi stamparla a video nella pagina del singolo libro. Il problema è che l'immagine non viene visualizzata e non capisco se l'errore sta nel caricamento o nella stampa.

    Il mio database ha un campo BLOB per la gestione della copertina...vi posto il codice sperando che riusciate ad aiutarmi a torvare l'errore.

    inserimento libro (insert_libro.php)
    [PHP] <?PHP //includiamo il file di configurazione
    @include "config.php";

        //valorizziamo le variabili con i dati ricevuti dal form
        if(isset($_POST['submit'])){
        if(isset($_POST['Codice'])){
            $Codice = addslashes($_POST['Codice']);
         }
          if(isset($_POST['Titolo'])){
            $Titolo = addslashes($_POST['Titolo']);
         }
         if(isset($_POST['Autore'])){
            $Autore = addslashes($_POST['Autore']);
         }
         if(isset($_POST['Categoria'])){
            $Categoria = addslashes($_POST['Categoria']);
          }
        if(isset($_POST['Trama'])){
            $Trama = addslashes($_POST['Trama']);
         }
        if(isset($_POST['Copertina'])){
            $Copertina = addslashes($_POST['Copertina']);
         }
        if(isset($_POST['Disponibilita'])){
            $Disponibilita = addslashes($_POST['Disponibilita']);
         }
    
    
          // popoliamo i campi della tabella articoli con i dati ricevuti dal form
          $sql = "INSERT INTO Catalogo (Codice, Titolo, Autore, Categoria, Trama, Copertina, Disponibilita) VALUES ('$Codice','$Titolo', '$Autore', '$Categoria', '$Trama', '$Copertina', '$Disponibilita')";
    
    
          // se l'inserimento ha avuto successo inviamo una notifica
         if (@mysql_query($sql) or die (mysql_error())){
            echo "Libro inserito con successo.";
          } 
        }if ($_COOKIE["login"] == "OK")
    {
    ?>
    <h1>Inserisci un libro</h1>
    <form action="insert_libro.php" method="post" enctype="multipart/form-data">
    Codice:<br>
    <input name="Codice" type="text" size="30"><br>
    Titolo:<br>
    <input name="Titolo" type="text" size="30"><br>
    Autore:<br>
    <input name="Autore" type="text" size="30"><br>
    Categoria:<br>
    <input name="Categoria" type="text" size="30"><br>
    Breve trama:<br>
    <textarea name="Trama" cols="40" rows="10"></textarea><br>
    Copertina(URL):
    <input name="Copertina" type="file" size="30"><br>
    Disponibilità:
    <input name="Disponibilita" type="text" size="30"><br>
    <input name="submit" type="submit" value="Invia">
    </form>[/PHP]
    

    visualizzazione info libro (libro.php)
    [PHP] <? $Codice = $_GET['Codice'];
    @include "config.php";

    $sql = "SELECT Codice, Titolo, Autore, Trama, Categoria, Copertina, Disponibilita FROM Catalogo WHERE Codice='$Codice'";
    $query = @mysql_query($sql) or die (mysql_error());

    if(mysql_num_rows($query) > 0){
    $row = mysql_fetch_array($query) or die (mysql_error());
    $Titolo = $row['Titolo'];
    $Autore = $row['Autore'];
    $Trama = $row['Trama'];
    $Copertina = $row['Copertina'];
    $Disponibilita = $row['Disponibilita'];
    echo "<div id="immaginelibro"><img src="".$Copertina."" width="200" height="300"></div>";
    echo "<div id="infolibri1"><h2>".$Titolo."</h2> di " . $Autore . "<br><br>";
    echo "Trama:<br>". $Trama . "<br><br>";
    echo "Disponibilità: " .$Disponibilita. "</div>";
    echo "<div id="ordine">Compila il form qui sotto per prenotare oppure <a href="#" onclick="history.back(); return false;">torna indietro</a>.<hr>";
    echo "<form action="invia.php" method="post">
    Nome e Cognome(😞        Indirizzo E-mail():<br />
    <input type="text" name="nome"/>      <input type="text" name="indirizzo" /><br />
    Oggetto():<br />
    <input type="text" value="Prenotazione libro cod.".$Codice."" name="oggetto" readonly="readonly" size=50/><br />
    Messaggio(
    ):<br />
    <textarea cols="50" rows="5" name="messaggio"></textarea><br />
    <input type="submit" value="Invia" name="invia" />
    </form></div>";
    }

    ?>[/PHP]

    spero in voi! grazie mille!:)


  • User

    A oochio l'errore è nella img src. Non penso che nel database tu abbia memorizzato anche i path alla o alle cartelle delle immagini e quindi $Copertina contiene solamente il nome del file non il suo percorso.
    Per esserne certo metti: var_dump($Copertina); dopo $Disponibilità e dovrebbe uscirti il nome del file con la sua estensione.

    Adesso a meno che tu non abbia i file grafici alla rinfusa nella stessa directory dove si trova lo script non penso che potrà mai trovarti la Coprtina.

    P.S. Scusa mi spieghi sti operatori di soppressione degli errori messi così ... a mano bassa ?

    Ciao