Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Galleria fotografica

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    21

    Galleria fotografica

    Ciao a tutti

    premetto che non conosco la materia.....

    sto costruendo il mio sito e ora voglio creare una pagina dove pubblico la mia fotogallery...leggendo ho trovato tante guide, e ho preso questo percorso

    1. Database e file di configurazione della galleria

    In questa breve serie di articoli descriveremo il processo di creazione di una galleria d'immagini con l'utilizzo combinato di PHP, le librerie grafiche GD2 e il DBMS MySQL.

    Per la nostra galleria andremo a creare:

    •Un database MySQL chiamato 'img_gallery' in cui verrà generata una tabella ('images'), all'interno della quale inseriremo 5 campi: 'Id', 'Titolo', 'Descrizione', 'Nome', 'Tipo'.
    •Un file di configurazione ('config.php' ) con i dati di connessione al DBMS, di selezione del database e il percorso alla cartella in cui verranno inserite le immagini.
    •Un file contenente una funzione ('function.php') in grado di generare e salvare miniature (thumbnails) nei tre formati grafici più diffusi ('GIF', 'JPEG', 'PNG') utilizzando le librerie GD2.
    •Un file contenente il form per l'upload delle immagini ('form.php') e l'inserimento dei dati nella tabella; all'inteno di esso avverrà il controllo sul tipo di formati grafici consentiti e la chiamata alla funzione per le miniature.
    •Un file per la visualizzazione della galleria ('gallery.php'); le miniature saranno incolonnate all'interno di una tabella e ogni immagine sarà anche un link destinato al collegamento con la pagina per gli ingrandimenti.
    •Un file che permetterà di vedere ingrandite le immagini contenute nella galleria ('visual.php'). Sarà presente un piccolo menù di navigazione con il quale spostarsi sugli ingrandimenti delle immagini precedenti o successive.

    Ho fatto tutto....ma ora come metto in pratica questa procedura? cioè, cosa devo fare con i file php che ho creato?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    183
    qual'è la domanda?
    cosa c'è dentro i file?
    dici che li hai creati, cosa ci hai messo dentro?

  3. #3
    Ci sono una marea di gallery nel web, una marea davvero. Io dico perchè la gente (non mi stò riferendo solo a te) deve voler fare tutto di tasca sua?
    Ti scarichi un bel plug-in jQuery per esempio e il gioco è fatto senza stare a complicarti la vita =)
    Un esempio al volo:
    http://vandelaydesign.com/blog/web-d...age-galleries/
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    21
    Ciao

    io vorrei fare una pagina web sulla quale visualizzare i mie file jpg,bmp,pdf, ecc
    In pratica una galleria con la possibilità di commentarle...ho provato a guadare in giro, ho trovato il materiale ma non riesco applicarlo...date le mie basi scarse.....avrei bisogno di essere guidato passo dopo passo..

    Ho tante immagini da gestire, quindi cosa conviene fare? usare MySql? o altro...

    è soprattutto come metto in pratica il tutto?

    Grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    21
    garzie CiRi..Cuber

    è che non so come mettere in pratica la cosa......mi mancano le basi

    Puoi darmi una mano

  6. #6
    Possiamo sentirci in privato che magari ti dò una mano?+

    dvd[punto]ciri[chiocciola]gmail[punto]com
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    21
    ok

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    21
    Ho seguito qsto:

    1. Database e file di configurazione della galleria

    In questa breve serie di articoli descriveremo il processo di creazione di una galleria d'immagini con l'utilizzo combinato di PHP, le librerie grafiche GD2 e il DBMS MySQL.

    Per la nostra galleria andremo a creare:

    •Un database MySQL chiamato 'img_gallery' in cui verrà generata una tabella ('images'), all'interno della quale inseriremo 5 campi: 'Id', 'Titolo', 'Descrizione', 'Nome', 'Tipo'.
    •Un file di configurazione ('config.php' ) con i dati di connessione al DBMS, di selezione del database e il percorso alla cartella in cui verranno inserite le immagini.
    •Un file contenente una funzione ('function.php') in grado di generare e salvare miniature (thumbnails) nei tre formati grafici più diffusi ('GIF', 'JPEG', 'PNG') utilizzando le librerie GD2.
    •Un file contenente il form per l'upload delle immagini ('form.php') e l'inserimento dei dati nella tabella; all'inteno di esso avverrà il controllo sul tipo di formati grafici consentiti e la chiamata alla funzione per le miniature.
    •Un file per la visualizzazione della galleria ('gallery.php'); le miniature saranno incolonnate all'interno di una tabella e ogni immagine sarà anche un link destinato al collegamento con la pagina per gli ingrandimenti.
    •Un file che permetterà di vedere ingrandite le immagini contenute nella galleria ('visual.php'). Sarà presente un piccolo menù di navigazione con il quale spostarsi sugli ingrandimenti delle immagini precedenti o successive.
    Di seguito riportiamo l'SQL necessario alla creazione della tabella 'images':

    CREATE TABLE images (
    Id int(11) NOT NULL auto_increment,
    Titolo varchar(255) NOT NULL default '',
    Descrizione varchar(255) NOT NULL default '',
    Nome varchar(255) NOT NULL default '',
    Tipo varchar(255) NOT NULL default '',
    PRIMARY KEY (Id)
    );Ecco invece il semplice codice del file di configurazione che andremo ad includere in tutte le restanti pagine del nostro script:
    <?php
    // Connessione al DB
    $host = 'localhost';
    $user = 'user';
    $pass = 'password';
    $data = 'img_gallery';
    $cn = @mysql_connect($host,$user,$pass) or die (mysql_error());
    $sl = @mysql_select_db($data) or die (mysql_error());

    // Cartella fisica in cui andremo ad inserire le immagini.
    // Va creata nella stessa posizione dove si trovano i file .php
    $path_img = 'files/';
    ?>
    Nel prossimo paragrafo analizzeremo la funzione per la creazione delle miniature da immagini originali.


    Poi

    Di seguito presentiamo l'intero listato della funzione che chiameremo makeThumb():

    <?php
    function makeThumb($dir,$pic,$n,$t){
    @list($width, $height, $type, $attr) = @getimagesize($pic);
    $max_w = 100;
    $max_h = 100;
    $ratio = @min($max_w/$width,$max_h/$height);

    // Verifico che l'immagine originale sia più grande delle dimensioni massime 100*100pxl
    if ($ratio < 1){
    // Individuo le nuove dimensioni da assegnare all'immagine
    $w = @floor($ratio*$width);
    $h = @floor($ratio*$height);

    // creo una nuova immagine con le dimensioni appena calcolate
    $thumb = @imagecreatetruecolor($w,$h);
    if ($t == 'image/jpeg'){$temp = @imagecreatefromjpeg($pic);}
    elseif ($t == 'image/gif'){$temp = @imagecreatefromgif($pic);}
    elseif ($t == 'image/png'){$temp = @imagecreatefrompng($pic);}

    // ridimensiono l'originale e salvo nella cartella di destinazione
    @imagecopyresized($thumb,$temp,0,0,0,0,$w,$h,$widt h,$height);
    if ($t == 'image/jpeg'){@imagejpeg($thumb,"$dir/tb_".$n, 75);}
    elseif ($t == 'image/gif'){@imagegif($thumb,"$dir/tb_".$n, 75);}
    elseif ($t == 'image/png'){@imagepng($thumb,"$dir/tb_".$n, 75);}
    }
    }
    ?>


    POI

    Ecco il codice del nostro 'uploader'

    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
    Titolo:

    <input name="titolo" type="text" size="20">

    Descrizione:

    <textarea name="descrizione" cols="20" rows="4"></textarea>

    Immagine:

    <input type="file" name="imagefile">

    <input type="submit" name="Submit" value="Submit">



    <?php
    if(isset($_POST['Submit'])){
    // faccio un po' di inclusioni...
    @include 'config.php';
    @require 'function.php';

    // Creo una array con i formati accettati
    $tipi_consentiti = array("image/gif","image/jpeg","image/png");

    // verifico che il formato del file sia tra quelli accettati
    if (@in_array($_FILES['imagefile']['type'], $tipi_consentiti)){
    // copio il file nella cartella delle immagini
    @copy ($_FILES['imagefile']['tmp_name'], $path_img . $_FILES['imagefile']['name']);

    // recupero i dati dal form
    $titolo = @addslashes($_POST['titolo']);
    $descrizione = @addslashes($_POST['descrizione']);
    $nome = @addslashes($_FILES['imagefile']['name']);
    $path = $path_img . stripslashes($nome);
    $tipo = @addslashes($_FILES['imagefile']['type']);

    // creo la miniatura
    @makeThumb($path_img,$path,$nome,$tipo);

    // aggiorno il database
    $query = "INSERT INTO images (Titolo,Descrizione,Nome,Tipo) VALUES('$titolo','$descrizione','$nome','$tipo')";
    $res = @mysql_query($query) or die (mysql_error());
    @mysql_close($cn);

    // Stampo a video un po' di informazioni
    echo "Nome: ".$_FILES['imagefile']['name']."
    ";
    echo "Dimensione: ".$_FILES['imagefile']['size']."
    ";
    echo "Tipo: ".$_FILES['imagefile']['type']."
    ";
    echo "Copia eseguita con successo.";
    }else{
    // stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito
    echo "Impossibile eseguire l'upload.";
    }
    }
    ?>
    </form>

    POI


    Ecco il codice della nostra galleria:

    <?php
    @include 'config.php';

    // apro la tabella che ci servirà per l'impaginazione
    echo "<table>";

    // recupero i dati dal DB
    $query = "SELECT * FROM images ORDER By Id";
    $res = mysql_query($query) or die (mysql_error());

    // numero delle immagini presenti nel DB
    $n_img = mysql_num_rows($res);

    // verifico che il DB ospiti almeno un'immagine
    if($n_img >= 1 ){
    // stabilisco il numero di riche e colonne della nostra tabella per l'impagninazione
    $colonne = 3;
    $righe=0;

    // ciclo tutti i record recuperati attraverso la nostra query
    while ($f=@mysql_fetch_array($res)){
    $righe++;
    $id = $f['Id'];
    $titolo = stripslashes($f['Titolo']);
    $nome = stripslashes($f['Nome']);
    $descrizione = stripslashes($f['Descrizione']);

    // stampo la cella contenente l'immagine
    echo "<td width=\"33%\">\n";
    echo $titolo . "
    ";
    echo "<a href=\"visual.php?id=" . $id . "\">";
    echo "<img src=\"" . $path_img . "tb_" . $nome . "\" border=\"0\"></a>";
    echo "
    " . $descrizione;
    echo "</td>\n";

    // quando il numero di righe equivale al valore impostato nella variabile $righe
    // procedo a chiudere la linea e ad azzerare il valore di $righe
    if ($righe == $colonne){
    echo "</tr><tr>\n";
    $righe = 0;
    }
    }
    }else{
    // stampo un messaggio se il DB è vuoto
    echo "Nessuna immagine inserita.";
    }
    @mysql_close($cn);
    echo "</table>";
    ?>Il listato proposto è molto semplice: vengono prelevati i valori 'Titolo', 'descrizione' e 'Nome' del file dal database; quindi i risultati vengono incolonnati per 3 in modo che ogni immagine riporti titolo e descrizione corrispondente; ad ogni immagine è associato un link al file di visualizzazione che riconoscerà il giusto ingrandimento da visualizzare sulla base dell'Id passato per querystring.

    Di seguito riportiamo il codice completo della pagina 'visual.php':

    <?php
    if(isset($_GET['id'])){
    @include 'config.php';

    // apro la tabella
    echo "<table><tr><td>";

    // recupero dalla querystring l'ID dell'immagine da visualizzare
    $id_vis = $_GET['id'];

    // verifico la presenza dell'immagine sul DB
    $query = "SELECT * FROM images WHERE Id = '$id_vis'";
    $res = @mysql_query($query) or die (mysql_error());
    $n_img = @mysql_num_rows($res);

    // se l'id specificato esiste procedo con la visualizzazione
    if($n_img == 1 )
    {
    // recupero i dati dell'immagine selezionata
    $f = @mysql_fetch_array($res) or die (mysql_error());
    $titolo = stripslashes($f['Titolo']);
    $nome = stripslashes($f['Nome']);
    $descrizione = stripslashes($f['Descrizione']);

    // stampo a video l'imagine e le relative informazioni
    echo $titolo . "
    ";
    echo "<img src=\"" . $path_img . $nome . "\" border=\"0\">";
    echo "
    " . $descrizione . "

    ";

    // estraggo dal DB il primo e l'ultimo ID
    $sql_count = @mysql_query("SELECT MIN(Id) AS min, MAX(Id) AS max FROM images") or die (mysql_error());
    $id_max = @mysql_fetch_array($sql_count) or die (mysql_error());
    $min = $id_max['min'];
    $max = $id_max['max'];

    // calcolo e stampo il link per l'immagine precedente
    if($_GET['id'] != $min){
    $query_prev = @mysql_query("SELECT Id FROM images WHERE Id < '$id_vis' ORDER BY Id DESC LIMIT 1") or die (mysql_error());
    $f_prev = @mysql_fetch_array($query_prev)or die (mysql_error());
    $id_prev = $f_prev['Id'];
    echo "<a href=\"visual.php?id=$id_prev\">&lt;&lt; Precedente</a>";
    }

    // calcolo e stampo il link per l'immagine successiva
    if($_GET['id'] < $max){
    $query_next = @mysql_query("SELECT Id FROM images WHERE Id > '$id_vis' ORDER BY Id ASC LIMIT 1") or die (mysql_error());
    $f_next = @mysql_fetch_array($query_next)or die (mysql_error());
    $id_next = $f_next['Id'];
    echo "<a href=\"visual.php?id=$id_next\">Successiva &gt;&gt;</a>";
    }
    }else{
    // stampo un errore se l'immagine non esiste
    echo "Nessuna immagine inserita.";
    }
    // chiudo la tabella
    echo "</td></tr></table>";
    }
    ?>Da notare come il conteggio dei file presenti nella cartella sia effettuato tramite una query COUNT. Questo ci permette di comunicare all'applicazione il numero di slides visualizzabili anche nel caso in cui gli ID non siano sequenziali.

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.