Seite 1 von 2

pict.php

Verfasst: Mo Aug 30, 2010 7:44 pm
von naums
Ich bin ja hier schon fast Stammgast... Also mein heutiges Problem: Ich übergebe folgender Datei (pict.php) folgende Parameter. Quelltext:

Code: Alles auswählen

<?php
/***************************************************************
***    Developed by Naums Project in 2010, Stefan Naumann    ***
***************************************************************/
$get=$_GET;
if (isset($get["img"]))
{
    $img=$get["img"];
}
else
{
    $img=NULL;
};
if (isset($get["width"]))
{
    $width=$get["width"];
}
else
{
    $width=NULL;
};
if (isset($get["height"]))
{
    $height=$get["height"];
}
else
{
    $height=NULL;
// };

if ($img!=NULL)
{
    ##resizing an image for diskspace reasons.
	/**************************************************************************
	*** This Code is taken from the Oettinger Games project and was         ***
	*** modified slightly for this Homepage ***********************************
	*** http://klassenzimmer.scrapping.cc/naums/oettinger-games/pictgal.php ***
	*** ******************************************************************* ***
	*** Developed by Naums Project 2010 ***************************************
	**************************************************************************/
	
	header("content-type:image/jpeg");
	
	$path=explode("-",$img);
	$img=NULL; $a=0;
	while ($a<count($path))
	{
	    $img.=$path[$a];
		$a++;
		if ($a!=count($path))
		{
		    $img.="/";
		};
	};
	
	$src=imagecreatefromjpeg($img);
	
	if ($width==NULL and $height==NULL)
	{
	    list($origwidth, $origheight) = getimagesize($img);
		$newWidth=$origwidth; 
		$newHeight=$origheight;
	}
	else if ($width!=NULL and $height==NULL)
	{
	    list($origwidth, $origheight) = getimagesize($img);
		$newWidth=$width;
		$f=$origwidth/$newWidth;
		$newHeight=$height/$f;
	}
	else if ($width==NULL and $height!=NULL)
	{
	    list($origwidth, $origheight) = getimagesize($img);
		$newHeight=$height;
		$f=$origheight/$newHeight;
		$newWidth=$width/$f;
	}
	else
	{
	    list($origwidth, $origheight) = getimagesize($img);
		$newWidth=$width;
        $newHeight=$height;
	};
			  
	$dst=imagecreatetruecolor($newWidth, $newHeight);
	imagecopyresampled($dst, $src, 0, 0, 0, 0, $newWidth,$newHeight, $origwidth, $origheight);
	
	imagejpeg($dst, NULL, 100);
	imagedestroy($dst);	
	imagedestroy($src);
	
	/*************************************************************************/
}
else
{
    die("<P>ERROR: NO INPUT FILE SPECIFIED</P>");
};
?>
url:

Code: Alles auswählen

http://localhost/schuelerwettbewerb/pict.php?img=pict-games-ablauf.jpg&width=200
Die Datei existiert. Der Filename ist so buzzsch eingetragen, weil ich gedacht habe das / darf man in Adressen nicht benutzen, zumindest nicht wenns kein Unterordner sein soll :D Warum gibt mir header("content-type:image/jpeg"); folgendes aus:

Code: Alles auswählen

http://localhost/schuelerwettbewerb/pict.php?img=pict-games-ablauf.jpg&width=200
und nicht das bild? selbst wenn ich alles dahinterstehende auskommentiere kommt immernoch dieser Schriftzug. Vielen dank schonmal im Vorraus. (schreibt man das Voraus oder Vorraus? Kann mich nie entscheiden ;) )

Re: pict.php

Verfasst: Mo Aug 30, 2010 7:54 pm
von cloidnerux
Du willst über ein PHP-Skript ein Bild ausgeben?
Wieso willst du dann im header angeben, das ein PHP-Dokument ein Bild sein soll, wenn es doch nur als Resultat ein Bild hat?

Re: pict.php

Verfasst: Mo Aug 30, 2010 8:40 pm
von Xin
naums hat geschrieben: url:

Code: Alles auswählen

http://localhost/schuelerwettbewerb/pict.php?img=pict-games-ablauf.jpg&width=200
Die Datei existiert. Der Filename ist so buzzsch eingetragen, weil ich gedacht habe das / darf man in Adressen nicht benutzen, zumindest nicht wenns kein Unterordner sein soll :D
Was ist buzzsch!?
naums hat geschrieben:Warum gibt mir header("content-type:image/jpeg"); folgendes aus:

Code: Alles auswählen

http://localhost/schuelerwettbewerb/pict.php?img=pict-games-ablauf.jpg&width=200
und nicht das bild?
Der Header wird Dir diesen Text vermutlich nicht ausgeben, sondern das vermutlich als zusaetzlichen Header mitgeben.

Hast Du die Seite mal mit Telnet geprueft, was da genau ausgegeben wird?
naums hat geschrieben:selbst wenn ich alles dahinterstehende auskommentiere kommt immernoch dieser Schriftzug.

Kann es sein, dass das Bild, dass der Header nicht korrekt ist?
Ist zwischen dem Doppelpunkt und image/jpeg ein Leerzeichen vorgeschrieben?
naums hat geschrieben:Vielen dank schonmal im Vorraus. (schreibt man das Voraus oder Vorraus? Kann mich nie entscheiden ;) )
Das Wort "raus" existiert im Deutschen nicht. Es ist ein Kuerzel fuer her-aus, wie auch her-ein und nicht "rein" Wenn etwas rein ist, dann ist es sauber. Da Du nicht vorheraus sagen moechtest, lautet das Wort "voraus".

Re: pict.php

Verfasst: Di Aug 31, 2010 6:09 pm
von AnGaiNoR
GET-Parameter übergibt man per Fragezeichen und verbindet sie per kaufmännischem Undzeichen.
Die URL müsste also so aussehen:

Code: Alles auswählen

http://localhost/schuelerwettbewerb/pict.php?img=pict-games-ablauf.jpg?width=200

Re: pict.php

Verfasst: Di Aug 31, 2010 7:15 pm
von Xin
AnGaiNoR hat geschrieben:GET-Parameter übergibt man per Fragezeichen und verbindet sie per kaufmännischem Undzeichen.
Die URL müsste also so aussehen:

Code: Alles auswählen

http://localhost/schuelerwettbewerb/pict.php?img=pict-games-ablauf.jpg?width=200
Die Url, die er beschreibt ist soweit korrekt. Diese URL ist falsch (& vor width statt ?).

Er gibt die URL mit den Fragezeichen als Ausgabe an... wobei mir der Unterschied auch noch nicht aufgefallen ist, was die Sache nicht unbedingt verständlicher macht.

Re: pict.php

Verfasst: Di Aug 31, 2010 8:19 pm
von AnGaiNoR
@Xin:
Aber um den Querystring vom Rest der URL abzutrennen, muss man doch eigentlich ein Fragezeichen als Trennoperator nehmen, oder?

Re: pict.php

Verfasst: Di Aug 31, 2010 9:31 pm
von Xin
AnGaiNoR hat geschrieben:@Xin:
Aber um den Querystring vom Rest der URL abzutrennen, muss man doch eigentlich ein Fragezeichen als Trennoperator nehmen, oder?
Richtig - aber Du hast in Deiner URL auch die Unterscheidung zwischen den Argumenten mit dem Fragezeichen gemacht. Hier wäre - wie Du selbst ja beschrieben hast - das & fällig.

Re: pict.php

Verfasst: Mi Sep 01, 2010 7:09 pm
von AnGaiNoR
Hmm, ich hab das erste Fragezeichen in der URL einfach überlesen. ^^

Re: pict.php

Verfasst: Mi Sep 01, 2010 7:38 pm
von naums
ähm... also ... das header(content-type:image/jpeg); muss doch mit rein, weil das Skript das Bild direkt ausgeben soll und nirgendwo speichern soll, ich will dann von ner HTML Seite aus, auf das Skript mit den Parametern zugreifen, und dort das Bild sehn. Das Skript ist dazu da, das Bild zu verkleinern, (resizen) und so die Bandbreitenauslastung und auch die Ladezeiten zu minimieren.

Re: pict.php

Verfasst: Do Sep 02, 2010 11:13 am
von Xin
naums hat geschrieben:ähm... also ... das header(content-type:image/jpeg); muss doch mit rein, weil das Skript das Bild direkt ausgeben soll und nirgendwo speichern soll, ich will dann von ner HTML Seite aus, auf das Skript mit den Parametern zugreifen, und dort das Bild sehn. Das Skript ist dazu da, das Bild zu verkleinern, (resizen) und so die Bandbreitenauslastung und auch die Ladezeiten zu minimieren.
Ist da noch eine Frage oder funktioniert es nun?