PHP Problem... HILFE!

Tummelplatz für Computernutzer im allgemeinen und ihrer vielfältigen Probleme

Moderator: (M) Mod.-Team Allgemein

Antworten
Ed
TalkING. Superposter
TalkING. Superposter
Beiträge: 284
Registriert: Sa, 07. Apr. 07, 17:57

PHP Problem... HILFE!

Beitrag von Ed » Mi, 21. Mär. 12, 11:18

Hallo an alle,

ich möchte auf einer Website, welche mit Websitebaker betreut wird, eine zufällige Bilderauswahl anzeigen lassen.
Dazu nutze ich ein Droplet, da ich kaum Ahnung von PHP habe. :roll:
Nachdem ich einige Fehler selber korrigieren konnte, bekomme ich einen nun aber nicht weg. :x

Das hier ist der Code vom Droplet:

Code: Alles auswählen

01  $folder=opendir(WB_PATH.MEDIA_DIRECTORY.'/'.$dir.'/.'); 
02  $names=array();
03  while ($file = readdir($folder))  {
04  	$ext=strtolower(substr($file,-4));
05  	if ($ext==".jpg"||$ext==".gif"||$ext==".png"){
06  		$names[count($names)] = $file; 
07  	}
08  }
09  closedir($folder);
10  reset($names);
11  shuffle($names);
12  array_unshift($names," ");
13  if(isset($width)){$width=' width="'.$width.'"';}else{$width="";}
14  if(isset($height)){$height=' height="'.$height.'"';}else{$height="";}
15  $count=1;
16  while&#40;&#40;$image=next&#40;$names&#41;&#41;and&#40;&#40;$count<=$num&#41;or&#40;!isset&#40;$num&#41;&#41;&#41;&#41;&#123;
17  $name=substr&#40;$image,0,-4&#41;;
18  $images=$images. '<img src="'.WB_URL.MEDIA_DIRECTORY.'/'.$dir.'/'.$image.'" alt="'.$name.'">';
19  $count++;
20  &#125;
21  return $images;
Und hiermit rufe ich den Code auf:

Code: Alles auswählen

&#91;&#91;RandomOrderImages?dir=FOLDERNAME&width=###&height=###&num=4&#93;&#93;
num bestimmt die Anzahl der Bilder, die auf einmal angezeigt werden sollen.

Soooo...er zeigt mir jetzt 4 zufällige Bilder aus dem Verzeichnis an. Soweit so gut.
ABER: Ich bekomme immer folgende Fehlermeldung...
Notice: Undefined variable: images in D:\WebsiteBaker_Portable_2.8.2\htdocs\wbdemo\modules\droplets\droplets.php(37) : eval()'d code on line 18
In Zeile 18 muss also irgendwo nen Fehler sein.

also hier:

Code: Alles auswählen

18  $images=$images. '<img src="'.WB_URL.MEDIA_DIRECTORY.'/'.$dir.'/'.$image.'" alt="'.$name.'">';
Ich seh nix. Hab schon alles mögliche probiert. Vielleicht bin ich blind? :shock:

Hat einer ne Idee? :idea:

hachiroku
TalkING. Newbie
TalkING. Newbie
Beiträge: 8
Registriert: Mi, 21. Mär. 12, 11:50
Wohnort: HL / HH

Beitrag von hachiroku » Mi, 21. Mär. 12, 11:53

Der Hinweis erscheint nur, weil deine Variable $images vorher noch nie definiert wurde. Es geschicht auch nur beim ersten Schleifendurchlauf. Da schreibst du in die dann "neue" Variable $images die Konkatenation von $images mit dem folgenden String. Beim ersten Durchlauf kennt er aber $images halt noch nicht.
Quick 'n' Dirty Lösung: Vor der Schleife kurz $images = ""; einfügen.
Etwa:

Code: Alles auswählen

15  $images = "";
16  while&#40;&#40;$image=next&#40;$names&#41;&#41;and&#40;&#40;$count<=$num&#41;or&#40;!isset&#40;$num&#41;&#41;&#41;&#41;&#123; 
17  $name=substr&#40;$image,0,-4&#41;; 
18  $images=$images.'<img src="'.WB_URL.MEDIA_DIRECTORY.'/'.$dir.'/'.$image.'" alt="'.$name.'">'; 
19  $count++; 
20  &#125; 

Ed
TalkING. Superposter
TalkING. Superposter
Beiträge: 284
Registriert: Sa, 07. Apr. 07, 17:57

Beitrag von Ed » Mi, 21. Mär. 12, 12:00

Nice! :D Das war's! Vielen Dank! :D

Uiuiui und dafür haste dich extra angemeldet? :D

hachiroku
TalkING. Newbie
TalkING. Newbie
Beiträge: 8
Registriert: Mi, 21. Mär. 12, 11:50
Wohnort: HL / HH

Beitrag von hachiroku » Mi, 21. Mär. 12, 12:01

Bitte bitte ;)
Ja, wurde mal Zeit^^ seit 2 Jahren am mitlesen und irgendwann musste das mal kommen :P

Antworten