Enrico: Neuer Anlauf #2

Beitrag lesen

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