Navigation für Script

Schmaro

Grünschnabel
Hallo zusammen,
ich habe mal ein ganz einfaches PHP-Script gefunden, welches mir Bilder aus einem Ordner anzeigt. Ist ja auch alles schön und gut. Ich habe aber das Problem, dass das Script in der Navigation immer weiter zählt obwohl keine Bilder mehr vorhanden sind. Es wird dann immer ein Kreuz für das fehlende Bild angezeigt. Kann mir vieleicht jemand dabei helfen das Script so umzubauen bzw. umzuschreiben, dass das nicht mehr passiert?
Mit freundlichen Grüßen
Sven

PHP:
<body>
<?php 	// Aktuelle Bildnr. ermitteln
		// Bildnr. aus dem Dateinamen extrahieren
			$bild_aktuell=substr($_GET['bild'],8,4);
		// vorherige und nächste Bildnr. erzeugen
			$bild_vor=(int)$bild_aktuell+1;
			$bild_zurueck=(int)$bild_aktuell-1; ?>
<?php 	// führende Nullen hinzufügen
			$bild_vor=sprintf("%04s",$bild_vor);
			$bild_zurueck=sprintf("%04s",$bild_zurueck); ?>
<h1>Larissa</h1>
<p>
<a href="oeffner.php?bild=picture-<?php echo $bild_zurueck; ?>.jpg&gallerie=<?php echo $_GET['gallerie']; ?>" target="_self"><img src="../images/navi/previous.gif" width="30" height="20" alt="zürück" border="0"></a>
&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="<?php echo $_GET['gallerie']; ?>" target="_self"><img src="../images/navi/home.gif" alt="Übersicht" border="0"></a>
&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="oeffner.php?bild=picture-<?php echo $bild_vor; ?>.jpg&gallerie=<?php echo $_GET['gallerie']; ?>" target="_self"><img src="../images/navi/next.gif" alt="weiter" border="0"></a>
</p>

<table align="center" border="0"><tr><td><img src="../images/baby/<?php echo $_GET['bild']; ?>"  border="0"></td></tr></table>

</body>
 
das ist ja auch klar...wegen dem hier:
PHP:
// vorherige und nächste Bildnr. erzeugen
$bild_vor=(int)$bild_aktuell+1;
$bild_zurueck=(int)$bild_aktuell-1; ?>
Du musst natürlich erst mal prüfen, wie viele Bilder im Ordner sind und diese Zahl auch benutzen:
Wenn die Bildnummer erreicht ist, muss er aufhören, ein Bild vor in der Navi anzubieten.
 
Hallo,

danke für den Tip. Wie stelle ich das jetzt an. Bin in Sachen PHP nicht so bewandert.

Gruß Schmaro
 
Guten morgen

und wie baue ich das in das Script ein? Ich habe mir den Link angeschaut und schaue wie ein Sch...... ins Uhrwerk.

Wäre toll wenn das als Code dargestellt werden könnte.

Danke schon mal im voraus.

Gruß Schmaro
 
Mahlzeit,

tja leider habe ich das Problem immer noch und komme nicht wirklich weiter. Den Link von nosilume habe ich mir angesehen, aber leider bin ich da nicht wirklich weiter gekommen. Kann mir wirklich keiner helfen, wie ich "file_exists" in den Code mit einbauen kann?

Gruß Schmaro :confused:
 
Vielleicht so mit nur einer von hunderten anderen Möglichkeiten:

PHP:
<?php

$i = $_GET['bild'];
$url = $_SERVER['PHP_SELF'];

$dir = 'images'; // Bitte entsprechend ändern!
$verz = opendir($dir);

while($file = readdir($verz))
{
    if($file != '.' && $file != '..')
    {
        //Prüfen ob Bild vorhanden ist und Ordner aus Liste ausschließen!
        if(file_exists($dir.'/'.$file) && filetype($dir.'/'.$file)=='file')//Prüfen ob file vorhanden ist
        {
            $images[] = $file;//Bildnamen in ein Array lesen!
        }
    }
}

closedir($verz);

if(empty($i))
{
    $link_zurueck = '<a href="'.$_SERVER['PHP_SELF'].'">«</a>';
    $link_vor = '<a href="'.$_SERVER['PHP_SELF'].'?bild=1">»</a>';
    $bild = '<img src="'.$dir.'/'.$images[0].'"/>';
    $bildname = basename($dir.'/'.$images[0]);
}
if(!empty($i))
{
    if($i == 0)
    {
        $link_zurueck = '<a href="'.$url.'">«</a>';
        $link_vor = '<a href="'.$url.'?bild='.($i+1).'">»</a>';
        $bild = '<img src="'.$dir.'/'.$images[0].'"/>';
        $bildname = basename($dir.'/'.$images[0]);
    }
    elseif($i <= (count($images)-1) && $i > 0)
    {
        $link_zurueck = '<a href="'.$url.'?bild='.($i-1).'">«</a>';
        $link_vor = '<a href="'.$url.'?bild='.($i+1).'">»</a>';
        $bild ='<img src="'.$dir.'/'.$images[$i].'"/>';
        $bildname = basename($dir.'/'.$images[$i]);
    }
    else
    {
        $link_zurueck = '<a href="'.$url.'">«</a>';
        $link_vor = '<a href="'.$url.'?bild=1">»</a>';
        $bild = '<img src="'.$dir.'/'.$images[0].'"/>';
        $bildname = basename($dir.'/'.$images[0]);
    }
}
   
?>
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

   <head>
      <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">        
      <title>bildershow</title>
      <style type="text/css"><!--

         html, body {
           background-color: #ffffff;
           text-align:center;
           margin:0 auto;
         }
         a {
           text-decoration:none;
         }
      -->
      </style>
   </head>
   
   <body>
      <br/><?php echo $bild ?><br/>
      Bild: <?php echo $bildname ?><br/>
      zurück <?php echo $link_zurueck ?>&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $link_vor ?> weiter
   </body>
</html>
 
Zurück