thumbgalerie übergibt falschen wert

Gogotheunique

Grünschnabel
Hi!
Ich versuche gerade eine Bildergalerie zu machen. Sie besteht aus 2 php dateien. Eins ist die Thumbgalerie und das zweite ist vollansicht der bildes
Beide php datein funktionieren, nur hab ich das problem das von der thumbgalerie immer die falsche variable übergibt.
Die Thumbgalerie sucht automatisch in den ordner nach bildern und zeigt dies e an. nur übergibt er für die Variable b keine zahlen (1,2,3,4..) sondern immer den namen der bilddatei (b01.jpg). Hab jemand eine Ahnung wie das hinkriege das er jetz nur Zahlen übergibt?
Hier ist der quellcode der Thumb.php:

PHP:
<?
$path = '25-06-2004';  // Relativer Pfad zu den Bildern
$höhe = '120'; // Höhe der Thumbnail (Pixel)
$breite = '160'; // Breite der Thumbnails (Pixel)
$f = 'jpg'; // Dateiformate

$dir = opendir($path);
while($file = readdir($dir)){
	if($file != '.' && $file != '..' && preg_match('/.('.$f.')$/i', $file))
                    $pics[] = $file;

}
closedir($dir);

foreach($pics as $pic){
	echo ' <a href="'.$path.'/galerie.php?b='.$pic.'" target="_blank""><img src="'.$path.'/'.$pic.'" height="'.$höhe.'" width="'.$breite.'" border="0"></a>&nbsp;&nbsp;';
}
?>

$pic soll ne zahl sein und nicht der dateiname
 
Zuletzt bearbeitet:
Bitte benutz die PHP-Funktion des vB Codes, damit man das besser lesen kann

Etwas abgeändert sollte Dein Script funktionieren:

PHP:
<?
$path = '25-06-2004'; // Relativer Pfad zu den Bildern
$höhe = '120'; // Höhe der Thumbnail (Pixel)
$breite = '160'; // Breite der Thumbnails (Pixel)
$f = 'jpg'; // Dateiformate

$dir = opendir($path);
while($file = readdir($dir)){
if($file != '.' && $file != '..' && preg_match('/.('.$f.')$/i', $file))
$pics[] = $file;

}
closedir($dir);
$int_picanzahl = count($pics);

for ($pic=0;$pic<int_picanzahl;$pic++){
    echo ' <a href="'.$path.'/galerie.php?b='.$pic.'" target="_blank""><img src="'.$path.'/'.$pics[$pic].'" height="'.$höhe.'" width="'.$breite.'" border="0"></a>  ';
}

?>

Ungetestet, fix zusammengeschustert - hmmm sollte aber so gehen.
Du hast auf jeden Fall einen Denkfehler im Script, ich habe betreffende Teile einfach mal ersetzt, das es so klappen sollte, die Du es vermutlich möchtest.
 
Nachbesserung :)
Wieder ungetestet, habe leider net soooo viel Zeit.
Wenn ich Dich richtig verstanden habe, soll jedes Bild eine Zahl bekommen.

Ist das so gemeint:
Bild 1 erhält b=0 UND Dateiname=b01.jpg
Bild 1 erhält b=1 UND Dateiname=b02.jpg
Bild 1 erhält b=2 UND Dateiname=c01.jpg
... etc.

PHP:
<?
$path = '25-06-2004';  // Relativer Pfad zu den Bildern
$höhe = '120'; // Höhe der Thumbnail (Pixel)
$breite = '160'; // Breite der Thumbnails (Pixel)
$f = 'jpg'; // Dateiformate

$dir = opendir($path);
while($file = readdir($dir)){
    if($file != '.' && $file != '..' && preg_match('/.('.$f.')$/i', $file))
	$pics[] = $file;
}
closedir($dir);

// $pics = liste der Dateinamen der jpg-dateien
// $pic = einzelner Dateiname der jpg-datei während das abbearbeitens
// also benötigen wir einen weiteren counter für die bildzahl

$bildcounter = 0;
foreach($pics as $pic){
    echo ' <a href="'.$path.'/galerie.php?b='.$bild_counter.'" target="_blank""><img src="'.$path.'/'.$pic.'" height="'.$höhe.'" width="'.$breite.'" border="0"></a>&nbsp;&nbsp;';
    $bild_counter++;
}
?>
 
supi funktioniert schon fast wie ich das haben will :)
genau jedes bild soll eine zahl bekommen
Bild 1 = 1
Bild 2 = 2
usw
aber nciht den dateinamen. weil er hatte bei mir immer nur den dateinamen für jedes bild gemacht und nicht ne zahl. Das macht er jetz schon :-)
also hab ich nur einen bild counter vergessen hmpf
jetz ist da aber ein anderes kleines problem: er zählt das erste bild der thumbgalerie nicht mit. :(
b=1 ist erst das zweite bild und das erste ist nur b=

Hier kannst du es sehen
http://gogotheunique.funpic.de/temp/thumb.php

Wie mach ich das jetz das er auch das erste bild mitzählt?
 
Na, meinen Tippfehler hättest Du auch sehen können =D

PHP:
$bildcounter = 0;
wird zu
PHP:
$bild_counter = 0;

jetzt sollte es bei 0 beginnen :-)
 
Außerdem dürfen Variablennamen nur aus den ASCII-Zeichen von 127 bis 255 bestehen, wozu höhe nicht gehört &ndash; sicherlich nur ein Flüchtigkeitsfehler.
 
Naja, da ich gerade Langeweile hatte:

PHP:
<html>
<head>
<title>Galerie</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">

<?
$path = 'C:\Dokumente und Einstellungen\neuro\Eigene Dateien\Eigene Bilder\bla\2004-06-07';
$hoehe = '120';		// Höhe der Thumbnail (Pixel)
$breite = '160';		// Breite der Thumbnails (Pixel)
$f = 'jpg';			// Dateiformate
// Tabellendaten
$tablewidth = 500;	// Tabellenbreite
$cols = 5;		// Anzahl der Spalten der Tabelle


$dir = opendir($path);
while($file = readdir($dir)){
    if($file != '.' && $file != '..' && preg_match('/.('.$f.')$/i', $file))
    $pics[] = $file;
}
closedir($dir);
?>
<table width="<?php echo $tablewidth; ?>">
<tr>
<?php
// nötiges
$c=1;
$colcounter = 1;
// schleife
while($c<count($pics)+1){
			if (!isset ($pics[$c-1])) {}else{
				if ($colcounter>$cols){}else{echo "<td>";}}
		if (!isset ($pics[$c-1])) {}else{
		echo "<a href=\"b/index.php?b=".$c."\" target=\"_blank\"><img src=\"".$path."/".$pics[$c-1]."\" height=\"".$hoehe."\" width=\"".$breite."\" border=\"0\" style=\"-moz-opacity:0.5;filter:alpha(opacity=50);cursor:hand\" onmouseover=\"this.style.MozOpacity=1;this.filters.alpha.opacity=100\" onmouseout=\"this.style.MozOpacity=0.5;this.filters.alpha.opacity=50\"></a>";}
	$colcounter++;
			if ($colcounter>$cols){echo "</td>\n</tr>\n<tr>\n";$colcounter = 1;}else{echo"</td>\n";}
	$c++;
}
?>
</tr>
</table>
</body>
</html>

Das Script generiert nun eine Tabelle und legt über die Bilder einen Alpha-Effekt (IE/Moz). Das Bild ist in diesem Beispiel 50% zu sehen, fährt man mit der Maus darüber werden es 100%.

@Gogotheunique: Das Script hast Du auch per PN bekommen ;)
 
Zurück