Visualizzazione risultati 1 fino 14 di 14

Discussione: Estrapolare un'immagine d'anteprima dal database MySQL [era:aiuto sito PHP]

  1. #1
    Guest

    Question Estrapolare un'immagine d'anteprima dal database MySQL [era:aiuto sito PHP]

    Ciao, è la prima volta che scrivo in questo forum. Sto lavorando ad un sito, la situazione è questa: ho creato una pagina in php, dove gli utenti caricano delle immagini o video. Adesso, appena caricato il file, l'utente avrà un anteprima del file da lui caricato. Fino a qui tutto bene. Adesso non so come far si che il file caricato oltre a comparire sulla pagina dell'anteprima, compaia, in una grandezza più piccola sulla home, in modo che quando si cliccherà sopra di essa verrà visualizzata l'immagine o il video. Sull'anteprima il file compare solo fino a che la pagina non viene aggiornata, sulla home invece vorrei che il file resti in modo permanente. Ho già il database mysql per le immagini. Non so se mi sono spiegato bene. Rispondete in tanti, grazie.

  2. #2
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Non so se ho capito bene...
    Se hai una tabella con i riferimenti a tutte le immagini e i video caricati dovresti semplicemente stamparli.
    Vedi while() e mysqli_fetch_array()

    Ciao!

  3. #3
    Guest

    Predefinito

    Grazie, penso che la tua risposta sia giusta. Grazie gentilissimo

  4. #4
    Guest

    Predefinito

    Ho provato a fare come mi hai detto tu, solo che non riesco. Ho un codice che alla fine fa le stesse cose e funziona, però con l'immagine non funziona. Questo è quello che uso per commentare:
    Codice PHP:
    <?php
    require('connect_commenti.php');
    $name=$_POST['name'];
    $comment=$_POST['comment'];
    $submit=$_POST['submit'];
    $ora=time();
    $data=date('d F Y - H:i:s');
    if(
    $submit)
    {
    if(
    $name&&$comment)
    {
    $query=mysql_query("INSERT INTO comment (name,comment) VALUES ('$name','$comment')");
    header("Location: comment.php");
    }
    else
    {
    echo
    "Si prega di compilare tutti i campi.";
    }
    }
    ?>

    <form action="comment.php" method="POST">
    <label>Username: </label><br /><input type="text" name="name" value="<?php echo "$name" ?>" /><br /><br />
    <label>Scrivi un commento: </label><br /><textarea name="comment" cols="25" rows="?"></textarea><br /><br />
    <input type="submit" name="submit" value="Commenta" /><br />
    </form>
    <hr widht="1100px" size="5px" />

    <?php
    require('connect_commenti.php');
    $query=mysql_query("SELECT * FROM comment ORDER BY id DESC");
    while(
    $rows=mysql_fetch_assoc($query))
    {
    $id=$rows['id'];
    $dname=$rows['name'];
    $dcomment=$rows['comment'];
    echo
    '<font color="red">Username:</font> ' . $dname;
    echo
    '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp';
    echo
    '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp';
    echo
    $data ;

    echo
    '<br />' . '<br />' . '<font color="red">Commento:</font> ' . $dcomment . '<br />';
    echo
    '<hr align="left" size="5px" width="500px" color="blue" />' ;
    }
    ?>
    e qui funziona tutto, per l'immagine non so come fare. Ecco quello che uso per caricare le immagini e dove vorrei adattare la visualizzazione, permante (a meno che non vengano cancellati da me), dell'immagine caricata:
    Codice PHP:
    <?
    require('connect_file.php');

    $acceptType = array( //tipi di file accettati
    'png' => 'image/png',
    'jpe' => 'image/jpeg',
    'jpeg' => 'image/jpeg',
    'jpg' => 'image/jpeg',
    'gif' => 'image/gif',
    'bmp' => 'image/bmp',
    'mp4' => 'video/mp4',
    'avi' => 'video/avi',
    'avs' => 'video/avs-video',
    'movie' => 'video/x-sgi-movie',
    'moov' => 'video/quicktime',
    'mov' => 'video/quicktime',
    'mpeg' => 'video/mpeg',
    'mpg' => 'video/mpeg',
    );

    {

    if (
    $_FILES["file"]["error"] == 1)
    {
    echo
    "Errore nel caricamento del video <br>";
    echo
    "Il video che hai caricato supera i 50 MB <br>";
    echo
    '<a>Per caricare un altro video utilizza i bottoni qui sotto </a>';
    }
    if (
    $_FILES["file"]["error"] == 3)
    {
    echo
    "Errore nel caricamento del video <br>";
    echo
    "Il video è stato caricato parzialmente<br>";
    echo
    '<a>Per riprovare utilizza i bottoni qui sotto </a>';
    }
    if (
    $_FILES["file"]["error"] == 4)
    {
    echo
    "Errore nel caricamento del video <br>";
    echo
    "Nessun video selezionato<br>";
    echo
    '<a>Per riprovare utilizza i due bottoni qui sotto </a><br />';
    }
    if (
    file_exists("upload/$filename" . $_FILES["file"]["name"])){

    }

    if(
    in_array($_FILES['file']['type'], $acceptType)){
    $filename = $_FILES["file"]["name"];
    move_uploaded_file($_FILES["file"]["tmp_name"], "upload/$filename");
    "upload/" . $_FILES["file"]["name"];
    echo
    '<a>Se vuoi caricare altro usa i due bottoni qui sotto.</a><br />';
    $anteprima = $filename;
    }
    if(isset(
    $_POST['buttocarica'])){

    @include
    'connect_file.php';

    // recupero i dati dal form
    $nome = @addslashes($_FILES['file']['name']);
    $tipo = @addslashes($_FILES['file']['type']);
    $titolo = $_POST['titolo'];
    $descrizione = $_POST['descrizione'];
    $username = $_POST['username'];
    $ora=time();
    $data=date('d F Y - H:i:s', $ora);

    // aggiorno il database
    if($titolo&&$username)
    {
    $query = "INSERT INTO images (Nome, Tipo,titolo,descrizione, username) VALUES('$nome','$tipo', '$titolo', '$descrizione', '$username')";
    $res = @mysql_query($query) or die (mysql_error());
    @
    mysql_close($cn);
    }
    else{
    echo
    "Il file non e stato caricato. Compila tutti i campi obbligatori per caricare il file.";
    }
    }
    }


    ?>

    <table>
    <div align="center" id="anteprimains">
    </div>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
    <tr>
    <td>
    <h3>Username</h3>
    <input type="text" name="username" id="username" maxlength="18" />
    </td>
    </tr>
    <tr>
    <td>
    <h3>Da un nome al tuo video</h3>
    <input type="text" name="titolo" id="titolo" maxlength="18" />
    </td>
    </tr>
    <tr>
    <td>
    <h3>Una breve descrizione</h3>
    <textarea name="descrizione" id="descrizione" maxlength="200" rows="10" cols="40" ></textarea>
    </td>
    <tr>
    <td>
    <h3>Seleziona il tuo video/foto</h3>
    </td>
    </tr>
    <tr>
    <td id="campi"> <input name="file" type="file" id="file" size="20"></td>
    <td width="72"><button id="buttocarica" name="buttocarica" type="submit">Carica</button></td>
    </tr>
    </form>
    </table>
    Aiutatemi per favoreeeeee
    Ultima modifica di alemoppo : 08-02-2014 alle ore 20.26.52 Motivo: [CODE] -> [PHP]

  5. #5
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Che cosa viene stampato dallo script?
    Potrebbe aiutarti a trovare l'errore anche error_reporting()

    Ciao!

  6. #6
    Guest

    Predefinito

    Adesso ho trovato il modo, mi fa vedere la foto dove dico io, solo che una volta aggiornata la pagina resta l'immagine come se danneggiata, se poi però inserisco un altra immagine allora quella prende il posto di tutte e fino a che la pagina non viene aggiornata visualizza la stessa foto, una volta aggiornata la pagina viene visualizzato il campo <img /> come se danneggiato

  7. #7
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Dov'è il codice che fa visualizzare l'immagine?
    Puoi linkarmi la pagina sulla quale stai lavorando?

  8. #8
    Guest

  9. #9
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Ok ho capito, ma non riesco a trovare quella parte di codice in quello che hai postato tu.
    Ad esempio, dove specifichi l'URL (tramite src) dell'immagine? Il problema è quello, infatti viene stampato:
    Codice HTML:
    <img src='upload/' height='180' width='130' />
    Ciao!

  10. #10
    Guest

    Predefinito

    Ecco qui il codice sorgente completo:
    Codice PHP:
    <?
    require('connect_file.php');

    $acceptType = array( //tipi di file accettati
    'png' => 'image/png',
    'jpe' => 'image/jpeg',
    'jpeg' => 'image/jpeg',
    'jpg' => 'image/jpeg',
    'gif' => 'image/gif',
    'bmp' => 'image/bmp',
    'mp4' => 'video/mp4',
    'avi' => 'video/avi',
    'avs' => 'video/avs-video',
    'movie' => 'video/x-sgi-movie',
    'moov' => 'video/quicktime',
    'mov' => 'video/quicktime',
    'mpeg' => 'video/mpeg',
    'mpg' => 'video/mpeg',
    );

    {

    if (
    $_FILES["file"]["error"] == 1)
    {
    echo
    "Errore nel caricamento del video <br>";
    echo
    "Il video che hai caricato supera i 50 MB <br>";
    echo
    '<a>Per caricare un altro video utilizza i bottoni qui sotto </a>';
    }
    if (
    $_FILES["file"]["error"] == 3)
    {
    echo
    "Errore nel caricamento del video <br>";
    echo
    "Il video è stato caricato parzialmente<br>";
    echo
    '<a>Per riprovare utilizza i bottoni qui sotto </a>';
    }
    if (
    $_FILES["file"]["error"] == 4)
    {
    echo
    "Errore nel caricamento del video <br>";
    echo
    "Nessun video selezionato<br>";
    echo
    '<a>Per riprovare utilizza i due bottoni qui sotto </a><br />';
    }
    if (
    file_exists("upload/$filename" . $_FILES["file"]["name"])){

    }

    if(
    in_array($_FILES['file']['type'], $acceptType)){
    $filename = $_FILES["file"]["name"];
    move_uploaded_file($_FILES["file"]["tmp_name"], "upload/$filename");
    "upload/" . $_FILES["file"]["name"];
    echo
    '<a>Se vuoi caricare altro usa i due bottoni qui sotto.</a><br />';
    $anteprima = $filename;
    }
    if(isset(
    $_POST['submit'])){

    @include
    'connect_file.php';

    // recupero i dati dal form
    $nome = @addslashes($_FILES['file']['name']);
    $tipo = @addslashes($_FILES['file']['type']);
    $titolo = $_POST['titolo'];
    $descrizione = $_POST['descrizione'];
    $username = $_POST['username'];
    $ora=time();
    $data=date('d F Y - H:i:s', $ora);

    // aggiorno il database
    if($titolo&&$username)
    {
    $query = "INSERT INTO images (Nome, Tipo,titolo,descrizione, username) VALUES('$nome','$tipo', '$titolo', '$descrizione', '$username')";
    $res = @mysql_query($query) or die (mysql_error());
    @
    mysql_close($cn);
    }
    else{
    echo
    "Il file non e stato caricato. Compila tutti i campi obbligatori per caricare il file.";
    }
    }
    }


    ?>

    <table>
    <h3 align="center">Video pazzo in arrivo</h3>
    <div align="center" id="anteprimains">
    </div>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
    <tr>
    <td>
    <h3>Username</h3>
    <input type="text" name="username" id="username" maxlength="18" />
    </td>
    </tr>
    <tr>
    <td>
    <h3>Da un nome al tuo video</h3>
    <input type="text" name="titolo" id="titolo" maxlength="18" />
    </td>
    </tr>
    <tr>
    <td>
    <h3>Una breve descrizione</h3>
    <textarea name="descrizione" id="descrizione" maxlength="200" rows="10" cols="40" ></textarea>
    </td>
    <tr>
    <td>
    <h3>Seleziona il tuo video/foto</h3>
    </td>
    </tr>
    <tr>
    <td id="campi"> <input name="file" type="file" id="file" size="20"></td>
    <td><input type="submit" name="submit" value="Carica" /><br /></td>
    </tr>
    </form>
    </table>

    <?php
    require('connect_file.php');
    $filename = $_FILES["file"]["name"];
    $query=mysql_query("SELECT * FROM comment ORDER BY id DESC");
    while(
    $rows=mysql_fetch_assoc($query))
    {
    $titolo = $_POST['titolo'];
    $descrizione = $_POST['descrizione'];
    $username = $_POST['username'];
    echo
    $username;
    echo
    '&nbsp' . '&nbsp' . '&nbsp';
    echo
    $titolo;
    echo
    $data ;
    echo
    "<br />";
    echo
    "<img src='upload/$filename' height='180' width='130' />" ;
    echo
    '&nbsp' . '&nbsp' . '&nbsp' .'&nbsp';
    echo
    $descrizione;
    echo
    '<hr align="left" size="5px" width="500px" color="blue" />' ;
    echo
    "<form action='comment.php' method='POST'>
    <label>Username: </label><br /><input type='text' name='name' value='<?php echo '
    $name' ?>' /><br /><br />
    <label>Scrivi un commento: </label><br /><textarea name='comment' cols='25' rows='5'></textarea><br /><br />
    <input type='submit' name='submit' value='Commenta' /><br />
    </form>
    <hr widht='1100px' size='5px' />"
    ;
    }
    ?>

    <?php
    require('connect_commenti.php');
    $name=$_POST['name'];
    $comment=$_POST['comment'];
    $submit=$_POST['submit'];
    $ora=time();
    $data=date('d F Y - H:i:s');
    if(
    $submit)
    {
    if(
    $name&&$comment)
    {
    $query=mysql_query("INSERT INTO comment (name,comment) VALUES ('$name','$comment')");
    header("Location: comment.php");
    }
    else
    {
    echo
    "Si prega di compilare tutti i campi.";
    }
    }
    ?>
    <form action='comment.php' method='POST'>
    <label>Username: </label><br /><input type='text' name='name' value='<?php echo "$name" ?>' /><br /><br />
    <label>Scrivi un commento: </label><br /><textarea name='comment' cols='25' rows='5'></textarea><br /><br />
    <input type='submit' name='submit' value='Commenta' /><br />
    </form>
    <hr widht='1100px' size='5px' />
    grazie, per l'aiuto
    Ultima modifica di alemoppo : 12-02-2014 alle ore 20.56.54

  11. #11
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Come ti ha spiegato, il problema è nell'inclusione dell'immagine. Infatti:
    Codice PHP:
    $filename = $_FILES["file"]["name"];
    ...
    Codice PHP:
    echo "<img src='upload/$filename' height='180' width='130' />" ;
    Non ha senso usarlo quando non hai nessun upload inviato.
    Dovresti salvare il nome del file ad esempio sul database, quindi ricavarlo e scriverlo.

    Inoltre, non dovresti usare tutte quelle "@" nel codice. Mascherare in quel modo gli errori non ha senso.
    Infine, ci sono alcune cose che non capisco, come il fatto di creare variabili che non userai mai:
    Codice PHP:
    $anteprima = $filename;
    ...
    $ora=time();
    $data=date('d F Y - H:i:s', $ora);
    Comunque è vietato fare UP. Nessuno è obbligato a rispondere.

    Ciao!

  12. #12
    Guest

    Predefinito

    Scusa, non sapevo non si potesse fare, avevo visto in altre discussioni che veniva fatto. Quel $anteprima = $filename; l'avevo usato perchè stavo facendo una prova e avevo dimenticato di toglierlo. Adesso ho risolto questo problema, ma come sempre se ne risolve uno e ne viene un altro: adesso se carico più di un file, si creano due <img>, però in in tutte e due compare lo stesso file e quando aggiorno la pagina viene visualizzata l'immagine come se danneggiata. Ce la farò mai? Grazie ancora, aiutami in quest'altro problema per favore.

  13. #13
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Il problema è che devi salvare il nome dell'immagine nel database. Quindi quando la vuoi far visualizzare, devi mettere il nome estratto dal database dentro il tag <img>.

    Se in un singolo commento un utente può caricare più immagini, devi creare una nuova tabella "immagini" con l'id riferito al commento.

    Ciao!

  14. #14
    Guest

    Predefinito

    GRAZIE, sei stato GENTILISSIMOOOOO. Finalmente ce l'ho fatta a risolvere, ti ringrazio davvero, grazie ancora.

Regole di scrittura

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