Nochmals Hallo,
so, hier der verbesserte Code:
<?php
ParameterHolen ();
function ParameterHolen ()
{
if (isset ($_GET['Bild']) && preg_match ("/^[a-z]+[0-9]+$/i", $_GET['Bild']))
{
$Bild = "../GRAFIKEN/SORTIMENT/" . $_GET['Bild'] . ".png";
if (file_exists ($Bild))
{
if (isset ($_GET['Breite']) && is_numeric ($_GET['Breite']))
GroesseBerechnen ($Bild, $_GET['Breite'], "");
elseif (isset ($_GET['Hoehe']) && is_numeric ($_GET['Hoehe']))
GroesseBerechnen ($Bild, "", $_GET['Hoehe']);
else
echo 'Variable "Breite" oder "Hoehe" fehlt oder ungültig';
}
else
echo 'Datei "' . $Bild . '" nicht gefunden';
}
else
echo 'Variable "Bild" fehlt oder ungpltig';
}
function GroesseBerechnen ($Bild, $xNeu, $yNeu)
{
if ($Groesse = getimagesize ($Bild))
{
$x = $Groesse[0];
$y = $Groesse[1];
if ($xNeu != "")
{
$yNeu = round ($y / ($x / $xNeu));
$xNeu = round ($x / ($y / $yNeu));
BildErzeugen ($Bild, $x, $y, $xNeu, $yNeu);
}
else
if ($yNeu != "")
{
$xNeu = round ($x / ($y / $yNeu));
$yNeu = round ($y / ($x / $xNeu));
BildErzeugen ($Bild, $x, $y, $xNeu, $yNeu);
}
else
echo 'Funktion "GroesseBerechnen": Breiten- oder Höhenangabe fehlt';
}
else
echo 'Funktion "GroesseBerechnen": "getimagesize" ist fehlgeschlagen';
}
function BildErzeugen ($Bild, $x, $y, $xNeu, $yNeu)
{
$Bild = imagecreatefrompng ($Bild);
if (! $Thumbnail = imagecreatetruecolor ($xNeu, $yNeu))
$Thumbnail = ImageCreate($xNeu,$yNeu);
if (! imagecopyresampled ($Thumbnail, $Bild, 0, 0, 0, 0, $xNeu, $yNeu, $x, $y))
imagecopyresized ($Thumbnail, $Bild, 0, 0, 0, 0, $xNeu, $yNeu, $x, $y);
header("Content-type:image/png");
imagepng ($Thumbnail, "", 9);
}
?>
Nach wie vor das gleiche Resultat, dass es bei direkter Eingabe klappt:
Bei Einbindung in den HTML-Code hingegen nicht:
Wie bereits geschrieben liefert mir gettype ($Bild) "string" und var_dump ($Bild) "GewandungMuetzen1".
Alle echo-Befehle durch file_put_contents('error.log', 'hierdiemeldung', FILE_APPEND); zu ersetzen erfordert ein komplettes Umschreiben des Codes, da ich die Ausgaben zusammensetze:
$Ausgabe .= '<div class="Artikel">';
$Ausgabe .= '<div class="Bezeichnung">' . $Link . '</div>';
$Ausgabe .= '<img src="Verkleinern.php?Bild=' . $Bild . '&Hoehe=95">';
$Ausgabe .= '<div class="Rabatt"></div>';
$Ausgabe .= '<div class="Preis">' . $Preis . '</div>';
$Ausgabe .= "</div>";
Es ist deshalb notwendig, die eigentliche Ausgabe so zusammenzusetzen, da vorher verschiedene Abfragen erfolgen und das Zusammensetzen der Variable $Ausgabe von diesen Abfragen an mehreren Stellen abhängt.
Ich versteh nicht, warum es nicht funktioniert.
Gruß,
Enrico