Enrico: Neuer Anlauf

Beitrag lesen

Hallo,

danke für eure Antworten.

Ich habe jetzt den Code überarbeitet und mich dabei an dieser Seite orientiert.

Die Seite "Verkleinern.php" hat jetzt folgenen Aufbau:

  
<?php  
  
   $Bild = "../GRAFIKEN/SORTIMENT/" . $_GET['Bild'] . ".png";  
  
   $Bild = imagecreatefrompng($Bild);  
   $UrspruenglicheBreite = imagesx($Bild);  
   $UrspruenglicheHoehe  = imagesy($Bild);  
  
   if (isset ($_GET['Breite']))  
   {  
      $NeueBreite = $_GET['Breite'];  
  
      $NeueHoehe  = round($UrspruenglicheHoehe / ($UrspruenglicheBreite / $NeueBreite));  
      $NeueBreite = round($UrspruenglicheBreite / ($UrspruenglicheHoehe / $NeueHoehe));  
   }  
  
   if (isset ($_GET['Hoehe']))  
   {  
      $NeueHoehe = $_GET['Hoehe'];  
  
      $NeueBreite = round($UrspruenglicheBreite / ($UrspruenglicheHoehe / $NeueHoehe));  
      $NeueHoehe  = round($UrspruenglicheHoehe / ($UrspruenglicheBreite / $NeueBreite));  
   }  
  
   if(!$Thumbnail = imagecreatetruecolor($NeueBreite, $NeueHoehe))  
   {  
      $Thumbnail = imagecreate($NeueBreite, $NeueHoehe);  
   }  
  
   if(!$Thumbnail = imagecopyresampled($Thumbnail, $Bild, 0, 0, 0, 0, $NeueBreite, $NeueHoehe, $UrspruenglicheBreite, $UrspruenglicheHoehe))  
   {  
      imagecopyresized($Thumbnail, $Bild, 0, 0, 0, 0, $NeueBreite, $NeueHoehe, $UrspruenglicheBreite, $UrspruenglicheHoehe);  
   }  
  
   $Bild = $Thumbnail;  
  
   // header("Content-type:image/png");  
  
   imagepng($Bild, "", 9);  
  
?>  

Der Code zum Einbinden der zu verkleinernden Grafiken sieht wie folgt aus:

  
echo '<img src="Verkleinern.php?Bild=' . $Bild . '.png&amp;Hoehe=95">';  

Das "&"-Zeichen habe ich, wie es Gunnar geschrieben hatte, nun escaped.

Ein Blick in den erzeugten Quelltext liefert mir folgende Ausgabe:

  
<img src="Verkleinern.php?Bild=GewandungMuetzen1&amp;Hoehe=95">  
<img src="Verkleinern.php?Bild=GewandungMuetzen2&amp;Hoehe=95">  

Wenn ich, wie es mir Chris geraten hat, die URL direkt im Browser aufzurufen, bekomme ich folgende Meldungen:

Notice: Undefined variable: NeueBreite in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 25

Notice: Undefined variable: NeueHoehe in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 25

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 25

Notice: Undefined variable: NeueBreite in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 27

Notice: Undefined variable: NeueHoehe in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 27

Warning: imagecreate() [function.imagecreate]: Invalid image dimensions in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 27

Notice: Undefined variable: NeueBreite in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 30

Notice: Undefined variable: NeueHoehe in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 30

Warning: imagecopyresampled() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 30

Notice: Undefined variable: NeueBreite in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 32

Notice: Undefined variable: NeueHoehe in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 32

Warning: imagecopyresized() expects parameter 1 to be resource, null given in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 32

Warning: imagepng() expects parameter 1 to be resource, null given in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 39

Wenn ich das jetzt zerlege, dann wird scheinbar der Parameter "Hoehe" entweder nicht übergeben oder nicht (richtig) eingelesen, denn alle anderen Anweisungen bauen ja auf diesem Wert auf.

Warum wird der Wert nicht übergeben oder nicht (richtig) eingelesen?
Hängt das damit zusammen, dass der Wert nicht als Zahl interpretiert wird?

Gruß,
Enrico