galleria fotografica da cartella

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
ciao , sto facendo una galleria fotografica ma ho un problema nel visualizzare i thumb e i big..

i thumb sono public/images/wallpaper/thumb
i big sono public/images/wallpaper/

vi posto il codice:
PHP:
<?php
$url = (isset($_GET["dir"])) ? trim ((string)$_GET["dir"]): '';

if(empty($url))
{
	echo '404 not found';
}else{

//Set the extensions you want to load, seperate by a comma.
$extensions = "jpeg,jpg";

//Set the number of images you want to display per page
$imagesPerPage = 1;

//Set the $page variable
if(!isset($_GET['page'])){
        $page = 1;
}else{
        $page = $_GET['page'];
}

//Load all images into an array
$images = glob("*.{".$extensions."}", GLOB_BRACE);

//Count the number of images
$totalImages = count($images);

//Get the total pages
$totalPages = ceil($totalImages / $imagesPerPage);

//Make sure the page you are on is not greater then the total pages available.
if($page > $totalPages){
        //Set the currnet page to the total pages.
        $page = $totalPages;
}

//Now find where to start the loading from
$from = ($page * $imagesPerPage) - $imagesPerPage;

//Now start looping
for($i = $from; $i < ($from + $imagesPerPage); $i++){
        //We need to make sure that its within the range of totalImages.
        if($i < $totalImages){
                //Now we can display the image!
				?>
				<a href="public/images/<?php echo $url; ?>/<?php echo $images[$i]; ?>"><img src="public/images/<?php echo $url; ?>/thumb/<?php echo $images[$i]; ?>"></a>
				<?php
        }
}

//Now to display the page numbers!
for($p = 1; $p <= $totalPages; $p++){
        if($p == $page){
                $tmp_pages[] = "<strong>{$p}</strong>";
        }else{
                $tmp_pages[] = "<a href='?page={$p}'>{$p}</a>";
        }
}

//Now display pages, seperated by a hyphon.
echo "<br />" . implode(" - ", $tmp_pages);
}
?>

mi da problema qua:
PHP:
//Now start looping
for($i = $from; $i < ($from + $imagesPerPage); $i++){
        //We need to make sure that its within the range of totalImages.
        if($i < $totalImages){
                //Now we can display the image!
				?>
				<a href="public/images/<?php echo $url; ?>/<?php echo $images[$i]; ?>"><img src="public/images/<?php echo $url; ?>/thumb/<?php echo $images[$i]; ?>"></a>
				<?php
        }
}

mi potete aiutarmi ?

le immagini le resizo con the gimp e poi le uplodo.

ma non mi funziona bene la galleria..


vi ringrazio molto. e buona settimana.

vi prego.
 
azz, vero non vi ho detto il problema .. mi da dei notice e che non mi prende:
<a href="public/images/<?php echo $url; ?>/<?php echo $images[$i]; ?>"><img src="public/images/<?php echo $url; ?>/thumb/<?php echo $images[$i]; ?>"></a>
bene questa o meglio $images[$i];

avete idea?.

grazie mille.
 
Ciao, uno dei problemi del tuo script è qui
PHP:
$images = glob("*.{".$extensions."}", GLOB_BRACE);
non indichi la directory che ricevi in GET dove pescare le immagini;
potrebbe invece funzionare cosi
PHP:
$images = glob("../$url/*.{" . $extensions . "}", GLOB_BRACE);
 
ciao e grazie per avermi risposto..

ma qui che devo metterci:
<a href="public/images/<?php echo $url; ?>/<?php echo $images[$i]; ?>"><img src="public/images/<?php echo $url; ?>/thumb/<?php echo $images[$i]; ?>"></a>


perché il mio sito la cartella dove è e strutturato cosi:

/
public/
public/images/wallpaper/
public/images/wallpaper/thumb

il sito e nella root e il file gallery.php è nella root.

idee?
 
ho provato la tua versione:
mi da:
Notice: Undefined variable: tmp_pages in D:\xampp\htdocs\xxx\gallery.php on line 66

Warning: implode(): Invalid arguments passed in D:\xampp\htdocs\xxxx\gallery.php on line 66

la linea 66: e questa:
echo "<br />" . implode(" - ", $tmp_pages);

ma mi sa che finchè non prende i nomi delle immagini mi da quell'errore lì.
 
Devi metttere il percorso giiusto
non so di preciso com'è strutturato il tuo filesystem
prova a togliere ../
PHP:
$images = glob("$url/*.{" . $extensions . "}", GLOB_BRACE);
altrimenti continua a provare fino a che non trovi il percorso corretto. prova anche con l'indirizzo completo
PHP:
$images = glob("public/images/wallpaper/$url/*.{" . $extensions . "}", GLOB_BRACE);
non so nemmeno cosa ti arriva in GET
 
ora riesco e non da nessun notice.. etc..

ma mi genera l'html cosi:

Codice:
 <a href="public/images/wallpaper/win_hd.jpg"><img src="thumb/public/images/wallpaper/win_hd.jpg"></a>

ed invece io volevo cosi:
Codice:
 <a href="public/images/wallpaper/win_hd.jpg"><img src="public/images/wallpaper/thumb/win_hd.jpg"></a>

idea come fare?

il codice è cosi:
PHP:
$images = glob("public/images/".$url."/*.{".$extensions."}", GLOB_BRACE);

la variabile $url sarebbe il $_GET preso dal parametro dir , che la dir sarebbe la cartella che ho.

idea?

grazie mille.
 
quasi riuscito.. ho fatto cosi: dimmi se va bene..

PHP:
//Load all images into an array 
$image_thumb = glob("public/images/".$url."/thumb/*.{".$extensions."}", GLOB_BRACE);  
$images = glob("public/images/".$url."/*.{".$extensions."}", GLOB_BRACE);  

//Count the number of images 
$totalImages = count($images and $image_thumb);


e qui:
Codice:
 <a href="<?php echo $images[$i]; ?>"><img src="<?php echo $image_thumb[$i]; ?>"></a>
 
ho risolto.. funziona.. grazie mille.
qui:
$totalImages = count($images and $image_thumb);
basta:
$totalImages = count($image_thumb);

ciao.
 

Discussioni simili