PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gallerie - 1 Bild pro Seite?



Stormsam
19-03-2003, 14:27
Hi @all,


ich habe hier aus meinem PHP-Buch eine ganz simple Gallerie, wo man die Bilder nur in einen Ordner packt und er zeigt diese dann an.
Das Problem ist, das bei puretec irgendwie die thumbnail nicht so ganz wollen, bzw. es funktioniert nicht mit gifs und jpgs !

Deswegen wollte ich es jetzt so machen, das er die orgnial größe des Bildes anzeigt, doch das sieht ziehmlich durcheinander und unübersichtlich aus.

Deswegen wollt ich euch fragen wie man das machen könnte, das er immer nur 1 Bild pro Seite anzeigt und das es immer ein "-> weiter" Button gibt. Wie mach ich soetwas ?


MfG
Stormsam

Gaert
19-03-2003, 19:18
Hallo!

Ich würds folgendermaßen machen:

gallery.php :


<?php
function scan_gallery($gallery) {
$files=array();
$dir = @opendir($gallery);
if (!$dir) {
return $files;
}
while($item = readdir($dir)) {
if($item=="." or $item=="..") {
continue;
}
$file=$item;
if(is_file($gallery . $file)) {
$files[]= $file;
}
}
return $files;
}
$files = scan_gallery("/bilder");

$pic = $GET['bild'];
if (!$pic) $pic=0;
$picfile = $files[$pic];

echo "<img alt=\"\" src=\"$picfile\" /><br/><br/>";
if ($pic > 0) echo "<a href=\"gallery.php?bild=" . ($pic - 1) . "\">zur&uuml;ck</a>";
if ($pic < count($files)-1) echo "<a href=\"gallery.php?bild=" . ($pic - 1) . "\">weiter</a>";
?>

Stormsam
19-03-2003, 22:08
Hi!

danke für deine antwort!

hmm... das wäre jetzt schon die ganze Gallery oder?

Den bei mir zeigt er die Bilder nicht an, sondern nur ein "dead" Bild mit dem roten Kreuz, dieses hat die URL des Verzeichnises wo sich die Datei gallery.php befindet. Der Ordner ist kein Bild, deswegen funktioniert das ganze nicht so ganz.

Er sollte die Bilder doch aus dem ordner "bilder" herauslesen oder? Das funktioniert bei mir irgendwie nicht so richtig.

MfG

Stormsam

Gaert
19-03-2003, 22:58
Hallo!

Ich hab das ganze vorhin einfach frei runtergeschrieben, ohne es zu testen... kann also gut sein, dass ein paar Fehler drin sind.
Du solltest dir immer mal die HTML genau anschauen und mal analysieren was schiefläuft.

hmm...

ersetz mal das:


if(is_file($gallery . $file)) {
$files[]= $file;
}


durch das:



if(is_file($gallery . $file)) {
$files[]= $gallery . $file;
}


und das:



$files = scan_gallery("/bilder");


durch das:



$files = scan_gallery("./bilder/");


Mach dich einfach selber mal ein bisschen ans debuggen... macht doch viel mehr spaß ;)

Stormsam
20-03-2003, 10:30
Hi!

natürlich versuche ich immer auch selber bugs zu finden ;)

darauf bin ich z.b. auch gekommen:

$files = scan_gallery("./bilder/");

aber soetwas:

if(is_file($gallery . $file)) {
$files[]= $gallery . $file;
}

fällt mir nicht direkt auf :(


Auf jeden Fall zeigt er jetzt das Bild an, das Problem: Er zeigt immer das selbe Bild an, wenn man auf weiter klickt. Er zeigt nicht alle Bilder nacheinander sondern immer das selbe.

MfG
Stormsam

Gaert
20-03-2003, 10:49
Hi!

Ist natürlich wieder ein Flüchtigkeitsfehler von mir gewesen... hättest du aber auch draufkommen können!

Ersetze das:


if ($pic < count($files)-1) echo "<a href=\"gallery.php?bild=" . ($pic - 1) . "\">weiter</a>";


durch das:



if ($pic < count($files)-1) echo "<a href=\"gallery.php?bild=" . ($pic + 1) . "\">weiter</a>";

Stormsam
20-03-2003, 11:30
HI


hmm... das ändert nichts, nur das in der URL nun 1 anstatt -1 steht.

gallery.php?bild=1

und wenn ich die Zahl in der URL ändere:

gallery.php?bild=2
gallery.php?bild=3

kommt immer noch immer das selbe Bild.

Wenn man auf weiter klickt rechnet er nicht +1, auch nicht, wenn ich das - zum + mache.


MfG
Stormsam

Gaert
20-03-2003, 12:15
Hi!

Hab noch nen kleinen Tippfehler aufgespürt...
aus:
$pic = $GET['bild'];
wird
$pic = $_GET['bild'];

... wir werden das doch noch hinbekommen!

Kommt davon wenn man mitten in der Nacht anfängt zu programmieren und nicht testet!

Stormsam
21-03-2003, 09:17
DANKE!!!

Jetzt funktioniert es! :D

MfG
Stormsam