Probleme mit dem darstellen von Bildern aus der mysql-Datenbank

Probleme mit dem darstellen von Bildern aus der mysql-Datenbank

am 22.09.2006 17:15:38 von Pedro Santos

Ich habe folgendes Problem:
Wenn ich das folgende Skript aufrufe http://127.0.0.1/web/bild.php?id=106

Erscheint ein Dowload-Dialog mit der leeren bild.php.

error_reporting(E_ALL);
$db_link = mysql_connect("localhost",
"root","");

if(isset($_GET['id'])) {
$result = mysql_query("SELECT Bild,Filetype FROM kopp.fahrzeuge WHERE Id
= '$id';");
$row = mysql_fetch_object($result);
Header("Content-type: ".$row->Filetype);
echo $row->Filetype;
echo $row->Bild;
}
?>

Rufe ich es aus einem anderen Skript auf, dann erscheint das Bild als
Binärdaten in der html-seite:

echo ('');

Was kann ich tun?

Schöne Grüße
Pedro

Re: Probleme mit dem darstellen von Bildern aus der mysql-Datenbank

am 23.09.2006 13:10:51 von gregor herrmann

On Fri, 22 Sep 2006 17:15:38 +0200, Pedro Santos wrote:

> if(isset($_GET['id'])) {
> $result = mysql_query("SELECT Bild,Filetype FROM kopp.fahrzeuge WHERE Id
>= '$id';");

du pruefst zuerst (richtig) auf $_GET['id'] und verwendest dann in
deiner query (falsch) $id.

vgl. auch
11.20. Warum funktionieren meine Formulare nicht?
http://www.php-faq.de/q/q-formular-register-globals.html

abgesehen davon wuerde ich $_GET['id'] vor der weiterverarbeitung
noch pruefen.

vgl. auch
12.11. Prüfe importierte Parameter. Traue niemandem
http://www.php-faq.de/q/q-sicherheit-parameter.html

gregor
--
.''`. http://info.comodo.priv.at/ | gpg key ID: 0x00F3CFE4
: :' : debian: the universal operating system - http://www.debian.org/
`. `' member of https://www.vibe.at/ | how to reply: http://got.to/quote/
`- NP: Mark Knopfler: Silvertown Blues

Re: Probleme mit dem darstellen von Bildern aus der mysql-Datenbank

am 24.09.2006 01:28:17 von Pedro Santos

Danke für die Hinweise, ich habe jetzt alles hinbekommen, das Script
läuft :-). Um die Sicherheit kümmer ich mich, wenn alles fertig ist,
immerhin habe ich dadurch mehr code zum debuggen, was zusätzlich
verwirrend ist.

Schöen Grüße
Pedro

gregor herrmann schrieb:
> abgesehen davon wuerde ich $_GET['id'] vor der weiterverarbeitung
> noch pruefen.
>
> vgl. auch
> 12.11. Prüfe importierte Parameter. Traue niemandem
> http://www.php-faq.de/q/q-sicherheit-parameter.html

Re: Probleme mit dem darstellen von Bildern aus der mysql-Datenbank

am 24.09.2006 11:12:21 von Thomas Rachel

Pedro Santos wrote:

> Danke für die Hinweise, ich habe jetzt alles hinbekommen, das Script
> läuft :-). Um die Sicherheit kümmer ich mich, wenn alles fertig ist,
> immerhin habe ich dadurch mehr code zum debuggen, was zusätzlich
> verwirrend ist.

Würde ich so nicht sagen. Erstens muß Du diesen Code auch debuggen, und
zweitens ist er in den meisten Fällen marginal:

$id durch $_GET['id'] oder $_REQUEST['id'] zu ersetzen (oder einfacher: am
Anfang $id=$_REQUEST['id']; hinzuschreiben) fügt fast keine Komplexität
hinzu, an geeigneter Stelle mysql_real_escape_string() hin auch nur wenig.

Das Prüfen von $id auf eine Ganzzahl (mehr kannst Du hier auch nicht machen)
ist auch schnell gemacht. Und wenn Du das getan hast, brauchst Du im Query
auch keine '' mehr drumrum zu machen. Die wegzulassen, erleichtert Dir
unter Umständen den Umstieg auf ein anderes DBMS.


> Schöen Grüße
> Pedro
>
> gregor herrmann schrieb:

TOFU ist unschön. http://learn.to/quote


Thomas
--
Sehr witzig Scotty - Und jetzt beam meine Kleidung runter!
(unbekannte Quelle)