Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

ausgabe eines bildes





Frage

so, nachdem mein letztes problem immer noch nicht gelöst ist, habe ich ein neues, das wahrscheinlich leichter zu lösen ist: das script soll aus der mysql datenbank ein bild auslesen und ausgeben. soweit kein problem. wenn dies aber nicht vorhanden ist, soll da ein dummy-bild hin. dieses wird nicht angezeigt. wer kennt sie damit aus? [code] elseif ($prgm == "show_image") { $sql = "SELECT `image_type`,`image_data` FROM `user` WHERE `id` = '$userid'"; $qry = mysql_query($sql); $result = mysql_fetch_array($qry); if (isset($result['image_data'])) { $imagedata = $result['image_data']; $type = $result['image_type']; } else { $type = "image/gif"; $filedata = "pics/steady-pics/johndoe.gif"; $imagedata = addslashes(fread(fopen($filedata, "r"), filesize($filedata))); } header("Content-type: $type"); echo $imagedata; } [/code]

Antwort 1 von semi

Statt

else
{
  $type = "image/gif";
  $filedata = "pics/steady-pics/johndoe.gif";
  $imagedata = addslashes(fread(fopen($filedata, "r"), filesize($filedata)));
}


else
{
  header("Content-type: image/gif");
  readfile("pics/steady-pics/johndoe.gif");
  exit();
}

Übrigens, wie kommst Du auf die Idee bei Binärdaten (*.gif) addslashes zu verwenden :-)

Gruß,
Michael

Antwort 2 von Feuervogel

hmmm, joa vielen dank auch, werds gleich mal auspobieren!!!

das mit dem addslashes: ich hab mir zuerst ein tut über das thema durchgelesen, bevor ich von einem freund den tipp "$_FILES" bekam, das hat sich dann etwas vermischt.
das tut ist im übrigen der letzte s*chrott, voller fehler irgendwie:

http://www.phpbuilder.com/columns/florian19991014.php3

danke!!!

Antwort 3 von Feuervogel

es geht nicht. dazu sei aber auch noch zu sagen, dass das ganze in ner image-src steht, also <img src="show-image.php?id=3">. nach dem motto.

habs jetzt so verändert:

elseif ($prgm == "show_image")
					{
					$sql = "SELECT `image_type`,`image_data` FROM `user` WHERE `id` = '$userid'";
					$qry = mysql_query($sql);
					$result = mysql_fetch_array($qry);
					if (isset($result['image_data']))
						{				
						$imagedata = $result['image_data'];
						$type = $result['image_type'];
						}
						else
							{
							header("Content-type: image/gif");
  							readfile("pics/steady-pics/johndoe.gif");
  							exit();
							}
					
					header("Content-type: $type");
    				echo $imagedata;
									
					}


Antwort 4 von Feuervogel

ah, wenn ich

header("Content-type: image/gif");
readfile("pics/steady-pics/johndoe.gif"); exit();

in eine einzelne datei schmeiße klappts.

Antwort 5 von semi

Erstelle ein Testskript mit folgendem Inhalt
<?php
header("Content-type: image/gif");
readfile("pics/steady-pics/johndoe.gif");
?>

Wenn es funktioniert, dann liegt der Fehler irgendwo früher in Deinem Skript.

  1. Zugriffsrechte der GIF-Datei checken
  2. Ist die GIF-Datei auch OK, oder wurde sie versehentlich im ASCII-Modus zum Server geschickt.
  3. Pfad mal mit ./pics/.... versuchen (beachte den Punkt am Anfang)
  4. Vor dem Header Befehl darf keine Ausgabe erfolgen.

Sonst mal zum Test paar Ausgaben mit echo machen (um zu sehen, welcher Zweig ausgeführt wird). Dann natürlich nicht im IMG-Tag, sondern direkt in der Adresszeile des Browsers.

Viel Spaß beim Suchen :)

Antwort 6 von Feuervogel

ja, danke, bin dabei:)

Antwort 7 von Feuervogel

so, hab gleich mehrere fehler entdeckt (dank deiner ausführlichen beschreibung!!!) und das ganze ist nun in einem eigenen script.

sieht so aus:


<?php

include("include/connect.php");
$userid = $_REQUEST['id'];
											
		$sql = "SELECT `image_type`,`image_data` FROM `user` WHERE `id` = '$userid'";
		$qry = mysql_query($sql);
		$result = mysql_fetch_array($qry);
		if ($result['image_data'] == "")
			{
			header("Content-type: image/gif");
  			readfile("pics/steady-pics/johndoe.gif");
  			exit();
			}
	        else
				{
				header("Content-type: {$result['image_type']}");
    			echo $result['image_data'];	
				}
					
?>


danke an alle für die schnelle hilfe!

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: