imagecreatefromjpeg() -> SEITE NICHT GEFUNDEN? o.0


annih

Gesperrt
Hallo Leutz. :)

Also ich habe auf meinem Rechner (WinXP) Apache 2.0.49, PHP 4.3.8 und MySQL 4.0.20a am laufen. Soweit workt auch alles.
Problem: Ich habe mir eine PHP mit folgendem Inhalt geschrieben:

PHP:
<?php
if(is_numeric($_GET["imgid"]) && $_GET["imgid"]>0 /*referer-check!*/) {
	$db=mysql_connect(***);
	mysql_select_db("orange",$db);
	$result=mysql_query("SELECT dateiname FROM images WHERE imgid='".$_GET["imgid"]."';",$db);
	list($dateiname)=mysql_fetch_row($result);
	mysql_free_result($result);
	$picordner="images/";
	header('Content-type: image/jpeg');
	[email protected]($picordner.$dateiname);
	if(!$image) {
		$image=imagecreate(350,30);
		$fg=imagecolorallocate($image,128,0,0);
		$bg=imagecolorallocate($image,192,192,192);
		imagefilledrectangle($image,0,0,350,30,$bg);
		imagestring($image,5,8,7,"Das Bild kann nicht angezeigt werden!", $fg);
	}
	imagejpeg($image);
	imagedestroy($image);
	mysql_close($db);
}
?>

Wenn ich diese PHP über http://meine.web.ip/bild.php?imgid=1 aufrufe, geht das auch prima ... die Bild-ID wird richtig ausgelesen und das Bild korrekt angezeigt. (Das ganze brauche ich, damit ich den Fremdzugriff auf die Bilder verweigern kann.)
Wenn ich aber einem Freund die gleiche Adresse gebe bekommt er einen Fehler. IE Meldet: Die Seite kann nicht angezeigt werden. Ich benutze gewöhnlich Mozilla, aber mit dem IE ging das ganze bei mir auch. (Wieso auch nicht, hängt ja nicht vom Browser ab...)
Das kuriose ist eigentlich: Wenn er die Adresse OHNE Qry-String (?imgid=1) eingibt, funktioniert es. Die PHP gibt dann halt nur nix zurück, aber sie kann aufgerufen werden. Auch funktioniert das ganze mit den übrigen 3 Bildern. (also ID 2-4 ... siehe weiter unten)

Bis jetzt habe ich nur eine logische Erklärung gefunden, aber für Sinnvoll halte ich die nicht wirklich. o.0 Gibt es bei der Funktion irgendwie n size-limit? Oder liegt das einfach daran, dass ich nur n Upload von 16 kb/s habe? (Standard-ADSL)

pic 1 = 24.15 kB workt NICHT!
pic 2 = 10.72 kB workt
pic 3 = 4.62 kB workt
pic 4 = 4.36 kB workt (als pic 4 absichtlich 50 kb groß war ging es auch nicht)
(mein Upload = 16 kB/s)

Ich raff das nicht. Oder ist das was in der php.ini faul bzw. muss ich den Apache anders confign?

Vielleicht noch eins: Ich habe den Ordner /images vollkommen verriegelt... zumindest hab ich den bei Apache auf "Deny from all" (Was die ganzen andern Optionen wie Order allow,deny oder so machen, konnt ich bisher auch noch nich Identifizieren. -.-), nur ob das an ist oder nicht ändert nichts an der Tatsache, dass es mir angezeigt wird und meinem Freund nicht... o.0 (Und JA, ich habe den Apache nach config-änderung restartet.)

Irgendwelche Ideen? (Was Apache angeht hab ich eigentlich nur wenig plan, also falls da was putt sein könnte bitte nicht nur ein Wort...)

Danke schonmal. =) Bye
 
Zuletzt bearbeitet:

annih

Gesperrt
Keiner 'ne Idee? :(

Hat das Problem wirklich noch niemand gehabt. o.0 Das find ich jetz echt deprimierend... ich hab die ganze Zeit schon probiert. -.- Aber mag nich...

Kann das wirklich an der Bandbreite liegen?

Oder kann es daran liegen, dass ich Apaches timeout auf 60 gestellt hab? o.0 Wobei, das timeout steht auch wieder auf 360... ach sh** ...

v.v
Bitte achte unbedingt auf Deine Rechtschreibung, eine klare Fragestellung bzw. Antwort und eine sinnvolle Struktur. Beiträge mit durchgehender Kleinschreibung, Chatsprache und/oder mangelhafter Struktur werden kommentarlos gelöscht.
Mehr dazu findest Du in unserer Netiquette.
-.- omfg

klaupt ihr dass endert was an der pisastutie? ... was is so schlimm dran wenn man alles klein schreibt? Und wieso verschwindet das Wort funz† hier einfach? o.0

Ach übrigens... ihr könnt das ganze ja mal testen, wenn ich online bin, bzw. mein Rechner (und das ist eigentlich immer so) geht es auch... zumindest die Page... der Bildkram geht eben nicht... http://annih.dyndns.org/bild.php?imgid=1

... Ich hab jetzt für wirklich ALLES wo ein Fehler auftreten könnte eine Fehlermeldung...

PHP:
<?php
if(is_numeric($_GET["imgid"]) && $_GET["imgid"]>0 /*referer-check!*/) {
	include("locked/mysql_connect.php");
	if(!empty($CONN)) {
		$result=mysql_query("SELECT dateiname FROM images WHERE imgid='".$_GET["imgid"]."';",$CONN);
		list($dateiname)=mysql_fetch_row($result);
		mysql_free_result($result);
		if(!empty($dateiname)) {
			$picordner="images/";
			[email protected]($picordner.$dateiname);
			if(!$image) {
				$err='Fehler beim Anzeigen';
			}
		} else {
			$err='Bild-ID nicht gefunden';
		}
		mysql_close($CONN);
	} else {
		$err='Datenbank-Probleme';
	}
} else {
	$err='Keine Bild-ID angegeben';
}

if($err) {
	$image=imagecreate(350,30);
	$fg=imagecolorallocate($image,128,0,0);
	$bg=imagecolorallocate($image,192,192,192);
	imagefilledrectangle($image,0,0,350,30,$bg);
	imagestring($image,5,8,7,$err,$fg);
}
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>

Weiß nicht obs jetzt geht, die sind grad alle in der Schule. ^^
 
Zuletzt bearbeitet:

Sebastian Wramba

Erfahrenes Mitglied
Re: Keiner 'ne Idee? :(

Original geschrieben von annih
klaupt ihr dass endert was an der pisastutie? ... was is so schlimm dran wenn man alles klein schreibt? Und wieso verschwindet das Wort funz† hier einfach?

1. "Glaubt"
2. "das"
3. "ändert"
4. "Pisa-Studie"

Und nein, wir sind nicht von der Pisa-Studie. Wenn man Groß- und Kleinschreibung in Beiträgen berücksichtigt, dann erhöht das deutlich die Lesbarkeit.
Wörter, wie "funz.." verschwinden, weil eine gewisse "zivilisierte" Ausdrucksweise ebenfalls nicht schadet.

"Soweit workt auch alles."

Genau sowas muss echt nicht sein. Warum nicht "Soweit geht auch alles"? Ist sogar noch kürzer, als diese vermeintliche Denglisch.
 

annih

Gesperrt
o.0

"Denglisch" ist aber mal 'ne Abwechslung zu diesem langweiligen, deutschen Wortschatz. -.- MEIN GOTT, tut nicht so erwachsehen... -.- Ach und den Schreibaufwand für die Korrektur hättest du dir schenken können.

Im übrigens wäre mir 'ne Antwort auf die eigentliche Frage lieber gewesen. :p

AAAAAAAAAAAAAAAAAH ich krieg' mit dem ****** noch 'ne Krise...

(War der Post jetzt sauber genug? -.- Ich hab' sogar die Apostrophe beachtet.)







Da stellt man sich die Frage ob sich die Zensur von vergleichsweise normalen Worten mit dem freien Meinungsäußerungsrecht verträgt. :p
 

signo

Grünschnabel
ur mal so nebenbei erwähnt ich habe gerade auf den Link geklickt und sehe ein Bild :D

ein Kopf :D allerdings voller Fehler das Bild :>
 

Sebastian Wramba

Erfahrenes Mitglied
annih: Noch so ein Beitrag und du darfst dir ein anderes Board suchen, alles klar? Regeln sind dazu da, um den Umgang untereinander zu verbessern und zu erleichtern und um sich daran zu halten. Das hat rein gar nichts mit "erwachsen tun" zu tun. Ich hoffe, ich habe mich klar ausgedrückt.
 

annih

Gesperrt
Humor wie ne Leiche

Ja großer Obermoderator Chef Sebastian Wramba etc etc bla... sie haben sich klar ausgedrückt -.-

Und ne antwort wär jetzt trotzdem nicht schlecht. -.- Irgendwer muss doch sowas schonmal gelöst haben...







omg
 

BoTheK

Mitglied
Hi,
ich hatte das Problem auch schon mal. Allerdings mit imagecreatetruecolor().
Bei mir war das ein Problem mit der Version von GD. Was hast du da für eine Version am laufen?
 

annih

Gesperrt
PHPINFO GD

*phpinfo kopier*

GD Support enabled
GD Version bundled (2.0.23 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled

Allerdings kann ich mir nicht vorstellen, dass da was nicht stimmt, WEIL mir das ganze ja korrekt angezeigt wird? Theoretisch stimmt doch nur was mit der Übertragung nicht?

An is definitiv alles. -.- Und die Version: Ist das nicht die neuste, die war bei PHP 4.3.8 dabei? =) Sollt ich ne ältere nehmen? o.0

Und woher kommt bei manchen (es sind ja nicht mal alle!.!.! [woah]) der Fehler: "Die Seite wurde nicht gefunden" wenn man das ganze mit Qry-String aufruft? (PHP benutzt für sowas aber keinen eigenen Port oder? o.0 [Weis zwar nicht wie das gehen soll, aber langsam teste ich sogar die unwahrscheinlichsten Dinge...] Dann könnt ichs mir mit der Firewall erklären.)

Thx aber schonmal, dass mir überhaupt jemand 'n Lichtblick gibt. :p
 
Zuletzt bearbeitet:

BoTheK

Mitglied
Also mit einem Port bzw. Firewall kann es eigentlich nicht liegen.
Versuch doch mal in dem Script alle imagefunctionen auszuremen, und das Bild das aus der DB einfach mit echo anzeigen.

PHP:
<?php 
if(is_numeric($_GET["imgid"]) && $_GET["imgid"]>0 /*referer-check!*/) { 
    $db=mysql_connect(***); 
    mysql_select_db("orange",$db); 
    $result=mysql_query("SELECT dateiname FROM images WHERE imgid='".$_GET["imgid"]."';",$db); 
    list($dateiname)=mysql_fetch_row($result); 
    mysql_free_result($result); 
    $picordner="images/"; 
    /* header('Content-type: image/jpeg'); 
    [email protected]($picordner.$dateiname); 
    if(!$image) { 
        $image=imagecreate(350,30); 
        $fg=imagecolorallocate($image,128,0,0); 
        $bg=imagecolorallocate($image,192,192,192); 
        imagefilledrectangle($image,0,0,350,30,$bg); 
        imagestring($image,5,8,7,"Das Bild kann nicht angezeigt werden!", $fg); 
    } 
    imagejpeg($image); 
    imagedestroy($image);  */
    echo "<img src='".$picordner.$dateiname."'>";
    mysql_close($db); 
} 
?>

Ich hab das script jetzt nicht getestet, aber so sollte es ja das Bild einfach anzeigen. Dann kannst du ja Zeile für Zeile mehr mit dem REM runter gehen und schauen, wie lange es geht, bzw bei welchem Befehl die Seite stehen bleibt.

PS: imageceatefromjpeg() funktioniert natürlich nur mit jpg´s!
 

annih

Gesperrt
Ach was =)

Es sind nur extra für Testzwecke mit Photoshop neu gemachte JPGs aufm Server, bzw in dem Ordner. =)

*rofl* Sobald ich imagejpeg() kommentiere also // kann die Seite problemlos aufgerufen werden. Von jedem. Dummerweise hat dann das vermeintliche jpeg keinen Inhalt...

Kann es sein, dass an der imagejpeg()-Funktion was noch nicht so richtig funktioniert, wie es vom Programmierer gedacht ist? o.0 Nur so ne Idee, aber langsam glaub ich das wirklich...

Übrigens ab und zu kann mal jemand auf die Seite zugreifen (Was das beeinflusst weis ich auch noch immer nicht, ich glaube das ist alles zufallsgeneriert.).
 

BoTheK

Mitglied
Hmmmm,
nun weis ich auch nicht weiter. Ich habe bei mir selber imagejpeg() im Einsatz. Ich hab PHP4.3.2, GD2.0.12. Es funktioniert einwandfrei.
Vieleicht liegt es tatsächlich an der Version. Anders kann ich mir das nicht erklären.
 

sec-fox

Grünschnabel
Hm, kannst du mir deine GD Version mal schicken? Ich schick dir ne PN mit meiner E-Mail-Adi. =)

Wie Funktioniert imagecreatefromjpeg() eigentlich? Das Bild wird ja im Speicher gelagert, aber mit imagedestroy() killt man es da ja. -> Das PHP-Script läuft also so lange, bis die Daten komplett übertragen sind? Seh ich das richtig?

Dank der Tatsache, dass die Bilder ja einwandfrei geladen werden, wenn ich sie in HTML-Tags normal einbinde, kam ich auf folgende Idee: Ich lass die Bilder einfach in Dateien speichern, die dann wieder gelöscht werden. Allerdings müsst ich dann wissen: Wann kann ich die wieder löschen? Hm... auch nicht so der Bringer...
 
Zuletzt bearbeitet:

Forum-Statistiken

Themen
272.354
Beiträge
1.558.604
Mitglieder
187.825
Neuestes Mitglied
markus.frick