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');
	$image=@imagecreatefromjpeg($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:
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/";
			$image=@imagecreatefromjpeg($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:
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.
 
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
 
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 :>
 
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.
 
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
 
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?
 
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:
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'); 
    $image=@imagecreatefromjpeg($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!
 
Zurück