PHP - Bilder auslesen und in Galerie darstellen

Hiho,

kann mir mal jemand bei diesem Script hier helfen? Es ließt ein Verzeichnis aus und die dort abgelegten Bilder werden über das Script in einer Art Galerie dargestellt. Zudem gibt es noch einen Weiter- und Zurück-Button, mit welchen man zwischen den einzelnen Bildern wechseln kann.

Code:
<?php
$pfad = "bitmaps/";    // Pfad

$filehandle = opendir($pfad);    // Dateien auslesen Anfang

$x = 1;

while ($file = readdir($filehandle)) {

    if ($file != "." && $file != "..") {

      if(preg_match("/.(jpg|gif|png)$/i", $file)){
        // Ausgelesene Bilder in ein Array laden
        $bild[$x] = $file;
        $x++;
      }
   }
}


// Wieviele Bilder befinden sich im Verzeichnis
$anzbilder = count($bild);

// Hier wird die Bildgröße bestimmt, das hab ich aber erstmal rausgelassen, weil ich erst das andere richtig zum Laufen bekommen will
// $bildeigenschaften = getimagesize($pfad.$file[$_GET['b']]);

// Hier wird geprüft, ob eine ID übergeben wurde
if(!isset($_GET['b'])) $_GET['b'] = 1;

// Der Zurück- und Weiter-Button
echo "<p>";
if (($anzbilder - $anzbilder) +1 != $_GET['b'])
echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']-1)."\">Zurück</a>  ";

if($anzbilder != $_GET['b'])

echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']+1)."\">Weiter</a>";
echo "</p>\n";

// Bildnummer wird hier ausgegeben
echo "<p>Bild ".$_GET['b']." / ".$anzbilder."  </p>\n";

echo "<p><img src=\"".$pfad.$bild[$_GET['b']]."\"  alt=\"Bild ".$_GET['b']." / ".$anzbilder."\" /></p>\n";


closedir($filehandle);    // Dateien auslesen Ende

?>
Das Problem an der ganzen Sache ist, daß alles soweit funktioniert, sofern ich das Script _eigen_ laufen lasse. Ich habe auf meiner Seite allerdings ein Menusystem verlinkt. In der index.php hab ich oben ein Menusystem angegeben und dort wird mittels
Code:
<a href="index.php?action=bitmaps">blubb</a>

<?php

    if (empty($_GET['action']))
    {
    include('start.php');

    } else {

        switch($_GET['action']) {

          case 'start': include('bitmaps.php'); break;
       }
   }
?>
die zweite Seite aufgerufen, welche direkt unterhalb des Menusystems angezeigt wird.

Soweit so gut, die Verarbeitung funktioniert bisher in allen Scripts, nur kriege ich das bei diesem hier nicht hin.

Das Problem liegt in diesen Zeilen hier
Code:
echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']-1)."\"
echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']+1)."\"
Ich blick da jetzt nicht wirklich durch, wie ich den Code so abändern kann, sodaß die Bilderweiterleitung unterhalb des Menusystems angezeigt wird.

Noja, wer Langeweile hat, kann sichs ja mal anschauen ;-]

Grüßle Evil
 
Code:
echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']-1)."&action=bitmaps\"
echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']+1)."&action=bitmaps\"

Ohne lange zu schauen ein Vorschlag von mir, könnte aber klappen
 
Das Problem bei Includes und Aufruf über PHP_SELF ist immer, dass das übergeordnete Script (meist index.php) aufgerufen wird und die Variable des Includes (in deinem Fall action) wieder vergisst. Also muss diese Variable wieder mit übergeben werden.
 
kann jetzt nix konstruktives zu deinem Prob beitragen aber das hier solltest du vielleicht auch noch ändern
Code:
if (($anzbilder - $anzbilder) +1 != $_GET['b'])

ist doch das gleiche wie

Code:
if ( 1 != $_GET['b'])

oder ? ;)

mfg

püppi
 
kann sein das ich gerade völlig geistig umnachtet bin aber:
ist eine variable von sich selbst abgezogen nicht immer 0 ? und 0 +1 immer 1 ?
du zählst da nichst aus zu dem ergebnis von $var - $var eins hinzu

berichtige mich wenn ich da falsch liege ;)

mfg

püppi
 
Also quasi bräuchte ich dann _nur_ die eine Zeile Code von Dir und würde mir dadurch die beiden langen Zeilen von mir sparen?

...ich probiers einfach mal aus =)
 
LOL aso du hast nich verstanden was püppi ma wieder versucht umständlich zu erklären ...
okay noch mal zum mitschreiben:
du hast in Zeile 32 stehen : if (($anzbilder - $anzbilder) +1 != $_GET['b'])
ich meinte du könntest auch locker das in Zeile 32 schreiben: if (1 != $_GET['b'])

der rest von der datei soll unverändert bleiben, wie gesagt hatte nix mit dem Problem von dir zu tun, war mir nur beim drüber lesen aufgefallen ;)

mfg

püppi
 
ops, wie ungeschickt ... da war ich wohl eben in ner ganz anderen Zeile als Du. Du hast ja recht ;)

...und ich wunder mich, wieso die net gleich aussieht wie die, die Du gequotet hast lol

Ich glaub, das ist jetzt der Zeitpunkt, wo ich die Tastatur mal auf die Seite legen sollte und mir was zu naschen gönne *grins*
 
Zurück
Oben