$datei erzeugt keinen Wert - Bildergallerie

matthiaswerner

Grünschnabel
Hallo!

Bin auch ein PHP-Newbie und hoffe auf Eure Hilfe:

Ich habe brav versucht, einen Script zusammenzuschustern, der alle Bilddateien in einem Verzeichnis einliest und als Thumbnails ausgibt. Leider die Sache nicht wirklich - trotz stundenlangem "rumdoktern" einschließlich Endlos-Sessions bei tutorials.de (was übrigens klasse und nach meinem Dafürhalten die beste Hilfeseite im Netz ist, hab auf der Suche auch eine ganze Menge anderer versucht).

Am einfachsten, ich stelle mal den Code zur Verfügung:

gallery.php:
_____________________________________________________________
<HTML><head><TITLE>Bildervorschau</TITLE></HEAD>

<BODY BGCOLOR="#FFFFFF">
Hallo Besucher!<br>
Dies ist eine einfache Bildvorschau für alle in einem Verzeichnis liegenden Bilder.<br><br>


<?php

$verz = dir(".");
while($datei = $verz->read()) {
if (eregi(".jpg$", $datei)) {
echo("<a href=\"$datei\">");
echo("<img hspace=10 vspace=10 ");
echo("src=\"thump.php?image=$datei\">");
echo("</a>\n");
}
}
?>
</BODY></HTML>

____________________________________________________________

tump.php:

____________________________________________________________
<?php

header("Content-type: image/pjpeg");
$scale = 3; //verkleinert die Bilder auf ein Drittel
//$image = $HTTP_POST_VARS["image"];
//$image = $_GLOBALS["image"];


$size = getimagesize($image);
$width = round($size[0]/$scale);
$height = round($size[1]/$scale);
$src = imagecreatefromjpeg($image);
$dest = imagecreate($width, $height);
imagecopyresized($dest,$src,0,0,0,0,$width,$height,$size[0],$size[1]);

imagejpeg($dest);
imagedestroy($dest);
imagedestroy($src);
?>

_____________________________________________________________

Ich habe den Eindruck, dass $datei nicht den richtigen Wert an die URL weitergibt bzw., dass die in der URL übergebene Variable "image" in thump.php nicht eingelesen werden kann.

Hoffe, dass einer einen Tipp hat und ich weiterlernen kann...

Herzlichen Dank schonmal,

Matthias.
 
Zuletzt bearbeitet:
Hallo!

Also, bei mir war das einzige Problem, dass du dieses hier

PHP:
//$image = $HTTP_POST_VARS["image"];
//$image = $_GLOBALS["image"];

auskommentiert hast.
Aber mal 'ne Frage?
Warum nimmst du die $HTTP_POST_VARS, wenn der Name des Bildes doch per Link (also mit GET) übertragen wird.
Dass du es auskommentiert (und mehrfach) dort stehen hast, lässt mich vermuten, dass du nicht genau wusstest, was du nehmen sollst.

Wenn du PHP 4.2 hast, kannst du $_GET['image'] nehmen.
Das ist wohl am einfachsten.

Wenn ich dass dan dort einsetze, funktioniert es einwandfrei (du brauchst aber PHP 4.2 ansonsten halt z. B. $HTTP_GET_VARS nehmen - ich schreib' das Script hier mal mit beiden Varianten):

thump.php
PHP:
<?php

header("Content-type: image/pjpeg");
$scale = 3;

$image = (isset($_GET['image']) ? $_GET['image'] : $HTTP_GET_VARS['image']);

if (gettype($image) != "string" || empty($image) || $image="")
	$image = "urleinesersatzbildes.jpg";

$size = getimagesize($image);
$width = round($size[0]/$scale);
$height = round($size[1]/$scale);
$src = imagecreatefromjpeg($image);
$dest = imagecreate($width, $height);
imagecopyresized($dest,$src,0,0,0,0,$width,$height,$size[0],$size[1]);

imagejpeg($dest);
imagedestroy($dest);
imagedestroy($src);

?>
 
Zurück