Problem mit Bildervorschau

OneSlap

Grünschnabel
Hi,
ich hab mal wieder ein Problem und brauche Hilfe.

Ich habe:
Index.php -> frameset für thumbnail.php und big.php
thumbnail.php -> Vorschau mit durchklicken (code siehe unten)
big.php -> da sollen die Bilder in orginalgröße angezeigt werden

Beschreibung des Problems:
Ich hab eine Bildervorschau (siehe Code) und würde jetzt gerne auf die Bilder jeweils einen Link legen der mir das thumbnail in big.php groß anzeigen soll. Jetzt habe ich das script nicht komplett selber geschrieben sondern nur geändert aus einem Tutorial von WMP entnommen und bin aber noch nicht so fit in PHP

So sieht es bis jetzt aus:
gengster.de

Was ich noch gerne hätte:
a) ich hätte gerne 3 bilder neben einander
b) auf den thumbnails sollen links gelegt werden sodas ich, wenn ich auf eins der Bilder klicke in big.php das Bild in Orginalgröße bekomme.

kann mir jemand helfen ?? *lieb guck*

thumbnail.php:
PHP:
<?php 

$bild_pfad ="bilder"; // Ordner in dem die Bilder sind 
$oeffne_pfad=opendir($bild_pfad); // Ordner öffnen 
$PicCODE= 1; 

while ($find = readdir($oeffne_pfad)) // Ordnerinhalt auslesen 
{ 
    if (preg_match("/.(jpg|gif|png)$/i", $find)) 
    { 
    $bild[$PicCODE] = "$bild_pfad/$find"; 
    $PicCODE++; 
        if ( ++$piccount % 5 == 0 ) 
        { 
        $hidden = $find; 
        } 
    } 
} 

$datei=$PHP_SELF; 
$max= $piccount; 

if (!isset($s)) { $s=1; } 
$zurück = $s-1; //$s (bild) -1 d.h. bild[aktuell] -1 

if ($zurück<=0)  	 //wenn zurück 
  { 
  $zurück=1; 
  }

$vor = $s+1; //$s (bild) +1 d.h. bild[aktuell] +1 

if ($vor>=$max) 	//wenn vor
  { 
  $vor=$max; 
  }  

echo "<div align=center>"; 
echo "<img src=$bild[$s] border=1><br><br>"; //Ausgabe des Bildes 

if ($s>1)
  {
  echo "<a href='$datei?s=$zurück'>[Zurück zu Bild $zurück] </a>"; //Zurück link
  }

echo " Bild: $s "; 
$gallery_size = sizeof($bild); 
                         
if ($s<$gallery_size)
  {   
  echo "<a href='$datei?s=$vor'> [Weiter zu Bild $vor]</a><br>";  //Vor Link 
  }

echo "</div>"; 

?>
 
Zuletzt bearbeitet:
mahlzeit,

also was du da oben alles machst, weiß ich net ...
ich hab das mal ein wenig modularer gemacht.
Su kannst zwischen ("slide"=Die Bilder werden mit steigendem "s"
jeweils um eins nach links verschoben [hab ich getestet, funktioniert ACHTUNG: er startet automatisch bei s=2 als nächstes s=3])
und "site" (er printet immer 3 raus und blättert zu den nächsten 3 [ACHTUNG: hab ich noch nicht getestet :-)])

ja, ansonsten erklärt sich das von selbst, ich hab noch keine Links eingebaut, vielleicht kommt, das noch, vielleicht nicht ...
PHP:
class bilder{
  var $bild=array();
  var $mode;
  var $first;
  var $second;
  var $third;
  var $pfad="bilder";
  function readDir(){
	//:Lesen der Bilder
	$bild_pfad =$this->pfad; 
	$oeffne_pfad=opendir($bild_pfad); 
	$PicCODE= 1; 
	while($find=readdir($oeffne_pfad)) { 
    		if (preg_match("/.(jpg|gif|png)$/i", $find)){ 
    			$this->bild[$PicCODE] = "$bild_pfad/$find"; 
    			$PicCODE++;
		} 
    	} 
  } 

  function genSite(){
	global $s;
	if(empty($s) || !is_numeric($s)) $s=2;
	$mitte=0;$left=0;$right=0;

	if($this->mode=="slide"){
		$mitte=$s;
		if($mitte>1) $left=$mitte-1;
		if($mitte<count($this->bild)) $right=$mitte+1;
	}else if($this->mode=="site"){
		$mitte=($s*3)-1;
		if(!empty($bild[($s*3)-2])) $left=($s*3)-2;
		if(!empty($bild[($s*3)])) $right=$mitte+1;
  	}
      $this->first=$left;
      $this->second=$mitte;
      $this->third=$right;
  }

  function prtSite(){
     if($this->first) $this->prtImage($this->first);
     if($this->second) $this->prtImage($this->second);
     if($this->third) $this->prtImage($this->third);
  }  
   
  function prtImage($index){
        echo('
	<img src="'.$this->bild[$index].'" border="0" hspace="2">
        ');
  }
}

$rep=new bilder;
$rep->mode="slide";
$rep->readDir();
$rep->genSite();
$rep->prtSite();
?>
 
hmm schahman aber ich kann mit deinem nicht viel anfangen :( aber ich habe einen teil meiner probleme gelöst schaut doch mal ob ihr mir weiter helfen könnt ... bitte *lieb guck*

meine page

Ich hab ein frameset mit den Dateien tumbnail.php und big.php.

thumbnail.php
PHP:
<?php 

$bild_pfad ="bilder"; // Ordner in dem die Bilder sind 

$oeffne_pfad=opendir($bild_pfad); // Ordner öffnen 

$PicCODE= 1; 

while ($find = readdir($oeffne_pfad)) // Ordnerinhalt auslesen 
{ 
    if (preg_match("/.(jpg|gif|png)$/i", $find)) 
    { 
    $bild[$PicCODE] = "$bild_pfad/$find"; 
    $PicCODE++; 
        if ( ++$piccount % 5 == 0 ) 
        { 
        $hidden = $find; 
        } 

    } 

} 
$datei=$PHP_SELF; 

$max= $piccount; 

if (!isset($s)) { $s=1; } 
$zurück = $s-1; //$s (bild) -1 d.h. bild[aktuell] -1 

if ($zurück<=0) { $zurück=1; } //wenn zurück 

$vor = $s+1; //$s (bild) +1 d.h. bild[aktuell] +1 

if ($vor>=$max) { $vor=$max; } //wenn vor 

echo "<div align=center>"; 

print "<a href='big.php?tata=$bild[$s]' target='orginal'><img src=$bild[$s] border=1></a><br><br>"; //Ausgabe des Bildes

if ($s>1)
  {
  echo "<a href='$datei?s=$zurück'>[Zurück zu Bild $zurück] </a>"; //Zurück link
  }

echo " Bild: $s "; 
$gallery_size = sizeof($bild); 
                         
if ($s<$gallery_size)
  {   
  echo "<a href='$datei?s=$vor'> [Weiter zu Bild $vor]</a><br>"; 		//Vor Link 
  }

echo "</div>"; 

?>

und big.php

PHP:
<html>

<head>
<title></title>
<script src="../js/fade.js"></script>
</head>

<body>

<?php session_start(); 
?>

<? if (empty($_GET["picture"])){ 
$picture = "standard"; 
} 
else{ 
$picture = $_GET["picture"]; 
}?> 
<img src="<? echo $picture;?>" alt="<? echo $picture;?>">

</body>
</html>

Was ist falsch, dass er mir nicht das richtige Bild in big.php ausgibt ??

THX Christian
 
Ich habe das Script nun modifiziert und die Links eingefügt.
Der Ordner kann über die Eigenschaft pfad editiert werden.

Der Mode "slide"
schaltet jeweils ein Bild weiter und schiebt die restlichen nach links. Es werden immer 3 Bilder auf einmal angezeigt.

Wenn jemand Lust hat, kann er ja noch ein wenig dran rumspielen. Lustig wäre noch eine Option, dass man die Anzahl der Bilder festlegen könnte.

PHP:
class bilder{
  var $bild=array();
  var $mode;
  var $first;
  var $second;
  var $third;
  var $pfad;
  function readDir(){
	//:Lesen der Bilder
	$bild_pfad =$this->pfad; 
	$oeffne_pfad=opendir($bild_pfad); 
	$PicCODE= 1; 
	while($find=readdir($oeffne_pfad)) { 
    		if (preg_match("/.(jpg|gif|png)$/i", $find)){ 
    			$this->bild[$PicCODE] = "$bild_pfad/$find"; 
    			$PicCODE++;
		} 
    	} 
  } 

  function genSite(){
	global $s;
	if(empty($s) || !is_numeric($s)) $s=2;
	$mitte=0;$left=0;$right=0;

	if($this->mode=="slide"){
		$mitte=$s;
		if($mitte>1) $left=$mitte-1;
		if($mitte<count($this->bild)) $right=$mitte+1;
	}else if($this->mode=="site"){
		$mitte=($s*3)-1;
		if(!empty($bild[($s*3)-2])) $left=($s*3)-2;
		if(!empty($bild[($s*3)])) $right=$mitte+1;
  	}
      $this->first=$left;
      $this->second=$mitte;
      $this->third=$right;
  }

  function prtSite(){
    global $s;
     if($this->first) $this->prtImage($this->first,($s-1));
     if($this->second) $this->prtImage($this->second,'');
     if($this->third) $this->prtImage($this->third,($s+1));
  }  
   
  function prtImage($index,$follow){
     if(!empty($follow)){ $ins='<a href="bilder.php?s='.$follow.'">'; $kins='</a>'; }
        echo('
	'.$ins.'<img src="'.$this->bild[$index].'" border="0" hspace="2">'.$kins.'
        ');
  }
}

$rep=new bilder; 
$rep->mode="slide";
$rep->pfad="bilder";
$rep->readDir();
$rep->genSite();
$rep->prtSite();

bis denne,
#
schamahn
 
Zuletzt bearbeitet:
Zurück