versuch13
Erfahrenes Mitglied
Hi, ich habe mir ein kleines Gallery Script geschrieben. Nun habe ich ein Problem mit der Blätterfunktion.
Das Script gal.php sieht so aus:
Das Script ist ein wenig kommentiert. Erst werden die Verzeichnisse ausgelesen. Im Ordner img befinden sich die einzelnen Gallerien, benannt nach dem Schema "Gallery1, Gallery2, Gallery3, usw.". Diese werden dann verlinkt.
Dann werden thumbnails angezeigt, hier im Beispiel immer neun Stück auf einer Seite.
Jetzt zum Problem. Habe ich z.B. 11 Bilder in dem Ordner Gallery1, werden also zwei Seiten angelegt, eine auf der neun Bilder angezeigt werden, auf Seite 2 dann nochmals zwei weitere Bilder.
Dann bekomme ich diese Fehlermeldungen:
Nehme ich das error_reporting(E_ALL) raus, werden diese nicht mehr angezeigt, aber das ist ja nicht die Lösung. Weiß wer was da falsch läuft? Wäre sehr dankbar wenn sich das mal jemand ansehen könnte.
Ich hänge das ganze auch nochmal an. Einfach die gal.php aufrufen.
Vielen Dank. Grüße
Das Script gal.php sieht so aus:
PHP:
error_reporting(E_ALL);
function show_thumbnail($file) {
if(is_file($file)) {
$max = 160; // Max. thumbnail width and height
$size = getimagesize($file);
if ( $size[0] <= $max && $size[1] <= $max ) {
$ret = '<img src="'.$file.'" '.$size[3].' border="0">';
}
else {
$k = ( $size[0] >= $size[1] ) ? $size[0] / $max : $size[1] / $max;
$ret = '<a href="javascript:;" onClick="window.open(\'image.php?img=';
$ret .= $file.'\',\'\',\'width='.$size[0];
$ret .= ',height='.$size[1].'\')">';
$ret .= '<img src="'.$file.'" width="'.floor($size[0]/$k).'" height="'.floor($size[1]/$k).'" border="0" alt="View full-size image"></a>';
}
return $ret;
}
}
// Verzeichnisnamen lesen
$mydirs = getcwd()."/img";
$verzs = dir($mydirs);
while($entrys=$verzs->read()){
if($entrys != "." && $entrys != ".."){
$ordner[] = $entrys;
}
}
$verzs->close();
// Ausgabe der Verzeichnisnamen verlinkt zu den Gallerien
rsort($ordner);
while(list($key, $val) = each($ordner)) {
$datei = ("img/".$val."/gallery.txt");
$data = file($datei);
foreach($data as $titel) {
echo "<a href=\"gal.php?gallery=".$val."&seite=1\">".$val."</a> ".$titel."<br />\n";
}
}
if(isset($_GET['gallery'])) {
// Gallerie Verzeichnis auslesen (Bilder)
$mydir = getcwd()."/img/".$_GET['gallery']."";
$verz = dir($mydir);
while(false !== $entry = $verz -> read()){
if($entry != "." && $entry != ".." && $entry != "gallery.txt"){
$dateinamen[] = $entry;
}
}
$verz->close();
//Ausgabe der Bilder (Blätterfunktion)
rsort($dateinamen);
echo "<div style=\"width:620px;\">\n";
$seite = $_GET['seite'];
if(!isset($seite)) {
$seite = 1;
}
$max_eintraege = 9;
$start = $seite * $max_eintraege - $max_eintraege;
$eintraege = count($dateinamen);
$max_seite = $eintraege / $max_eintraege;
echo "<br />Anzahl der Bilder in dieser Gallerie: ".$eintraege."<br /><br />\n";
for($i = 0; $i < $max_eintraege; $i++) {
if(file_exists("img/".$_GET['gallery']."/".$dateinamen[$i])) {
if(substr($dateinamen[$i], -4) == ".jpg") {
echo show_thumbnail("img/".$_GET['gallery']."/".$dateinamen[$i+$start]."")."\n";
}
}
}
echo "<br />";
# Ausgabe der Seiten Links
if($max_eintraege < $eintraege) {
for($a=0; $a < $max_seite; $a++) {
$b = $a+1;
if($seite == $b) {
echo " <b>$b</b> ";
} else {
echo "<a href=\"?gallery=".$_GET['gallery']."&seite=".$b."\">$b</a>\n";
}
}
}
echo "</div>";
}
Das Script ist ein wenig kommentiert. Erst werden die Verzeichnisse ausgelesen. Im Ordner img befinden sich die einzelnen Gallerien, benannt nach dem Schema "Gallery1, Gallery2, Gallery3, usw.". Diese werden dann verlinkt.
Dann werden thumbnails angezeigt, hier im Beispiel immer neun Stück auf einer Seite.
Jetzt zum Problem. Habe ich z.B. 11 Bilder in dem Ordner Gallery1, werden also zwei Seiten angelegt, eine auf der neun Bilder angezeigt werden, auf Seite 2 dann nochmals zwei weitere Bilder.
Dann bekomme ich diese Fehlermeldungen:
Code:
Notice: Undefined offset: 11 in C:\Programme\Apache2\htdocs\webprojects\Uebungen\gallery\gal.php on line 99
Notice: Undefined offset: 12 in C:\Programme\Apache2\htdocs\webprojects\Uebungen\gallery\gal.php on line 99
Notice: Undefined offset: 13 in C:\Programme\Apache2\htdocs\webprojects\Uebungen\gallery\gal.php on line 99
Notice: Undefined offset: 14 in C:\Programme\Apache2\htdocs\webprojects\Uebungen\gallery\gal.php on line 99
Notice: Undefined offset: 15 in C:\Programme\Apache2\htdocs\webprojects\Uebungen\gallery\gal.php on line 99
Notice: Undefined offset: 16 in C:\Programme\Apache2\htdocs\webprojects\Uebungen\gallery\gal.php on line 99
Notice: Undefined offset: 17 in C:\Programme\Apache2\htdocs\webprojects\Uebungen\gallery\gal.php on line 99
Nehme ich das error_reporting(E_ALL) raus, werden diese nicht mehr angezeigt, aber das ist ja nicht die Lösung. Weiß wer was da falsch läuft? Wäre sehr dankbar wenn sich das mal jemand ansehen könnte.
Ich hänge das ganze auch nochmal an. Einfach die gal.php aufrufen.
Vielen Dank. Grüße