1Danke
ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
415
415
EMPFEHLEN
-
Hallo ich habe folgende Tabelle,
Code sql:1 2 3 4 5 6 7 8 9 10 11 12
CREATE TABLE IF NOT EXISTS `accounts` ( `ID` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) DEFAULT NULL, `password` VARCHAR(50) DEFAULT NULL, `imagename` VARCHAR(30) DEFAULT NULL, `imagetype` VARCHAR(30) DEFAULT NULL, `imagesize` INT(11) DEFAULT NULL, `imagecontent` mediumblob, `session` VARCHAR(32) DEFAULT NULL, `aenderung` VARCHAR(50) NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=81 ;
und folgender php Code:
Ich kann das Bild mit echo $content am bestehenden Ort ausgeben.HTML-Code:<?php include '..\..\lib\mysql.inc.php'; //$id = $_GET['id']; $id = "1"; $query = mysql_query("SELECT * FROM `accounts` WHERE ID='".$id."'"); $row = mysql_fetch_array($query); $content = $row['imagecontent']; header('Content-type: image/jpg'); echo $content; ?> <html> <head></head> <body> <?php echo "<img src='show_image.php?id=1' width='150px'/>"; ?> </body> </html>
Wenn ich jedoch das $content im Body ausgeben möchte, funktioniert das nicht. Ich erhalte immer folgende Meldung:
Die Grafik „http://localhost/projekt1/management...how_image.php“ kann nicht angezeigt werden, weil sie Fehler enthält.
Wie ihr im Code sehen könnt habe ich es auch schon mit img versucht. Hat aber nichts gebracht. Wisst ihr warum das so ist?
Ich habe auch schon verschiedene Tutorials aus dem Internet versucht.
Auch habe ich sehr viele Informationen zu diesem Thema gefunden, aber leider hat keine funktioniert.
Ich weiss leider nicht mehr wo suchen und was versuchen.
Was kann ich in meinem Code ändern, damit ich das Bild im Body ausgeben kann?
Danke im Voraus für die Hilfe
Gruss
Smyle :-*
-
21.11.11 16:57 #2
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
du kannst das Bild nicht direkt im Body ausgeben, das geht so nicht. Du kannst im Body auf ein Bild referenzieren, jedoch nicht direkt ausgeben.
Teile deinen Code in 2 Dateien auf, dann gehts:
PHP-Code:<?php
// show_image.php
include '..\..\lib\mysql.inc.php';
//$id = $_GET['id'];
$id = "1";
$query = mysql_query("SELECT * FROM `accounts` WHERE ID='".$id."'");
$row = mysql_fetch_array($query);
$content = $row['imagecontent'];
header('Content-type: image/jpg');
echo $content;
?>GrußHTML-Code:<!-- ansicht.html --> <html> <head></head> <body> <img src="show_image.php?id=1" width="150px" /> </body> </html>
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Hallo
Ich habe nun dasin einer anderen Datei eingefüht. Welche sich im selben Ordner befindet wie die Show_image.php Datei. Auf der Homepage zeigt es mir zwar keinen Fehler mehr an (denn vorher hat es mir immer irgendwelche Zeichen angezeigt), aber auch kein Bild. Irgendetwas ist noch falsch.HTML-Code:<img src="show_image.php?id=1" width="150px" />
Muss man die schow_image.php im Header noch über include verbinden oder reicht das nur wenn ich das als img angebe?
Mir ist noch aufgefallen:
Im IE wenn ich den direkten Pfad zur show_image Datei eingebe, dann fragt es mich ob ich es öffnen oder speichern möchte.
Wenn ich auf öffne gehe, dann öffnet sich ein neuer IE Browser und das Bild wir angezeigt. Jedoch ist der Link der aus den Temporay Internet Files und nicht mein show_image Link.
Wenn ich den direkten Pfand im Firefox eingebe, dann wird das Bild direkt angezeigt.
Vielleicht hilft dieses Wissen etwas.Geändert von sheel (22.11.11 um 12:11 Uhr) Grund: Doppel
-
Konnte das Problem lösen, war ein Fehler im Pfad. Habe jedoch ein anderes Problem. Da nicht alle Zeilen ein Bild haben, möchte ich einen Platzhalter setzten.
Das heisst wenn das $Conntent Null ist (denn in der Datenbank ist es NULL) dann soll es ein anderes Bild, welches ich in meinem Ordner habe, übernehmen.
Wie kann ich das machen?
Ich habe es mit folgendem Code versucht, hat aber nicht funktioniert
PHP-Code:<?php
include '..\..\lib\mysql.inc.php';
$id = $_GET['id'];
//$id = "1";
$query = mysql_query("SELECT * FROM `accounts` WHERE ID='".$id."'");
$row = mysql_fetch_array($query);
$content = $row['imagecontent'];
header('Content-type: image/jpg');
//echo $content;
if($content === NULL)
{
echo"NEIN";
}
else
{
echo $content;
}
?>
-
22.11.11 13:04 #5
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
dein Ansatz ist zwar richtig, aber dein Codeschnipsel oben funktioniert so nicht. Text ist kein Bild, daher wird auch nichts angezeigt.
Über die "header()" Zeile teilst du dem Browser mit: "Achtung, hier kommt ein Bild!". Daher ist das "echo" ein paar Zeilen weiter unten falsch / ungültig, da dies ja ein Text und kein Bild ist.
Im if-Teil musst du also dein Alternativ-Bild auslesen und ausgeben. Hierfür kannst du die Funktion readfile() verwenden.
Beispiel:
//Edit: Noch ein Verbesserungsvorschlag um dich gegen SQL-Injection abzusichern:PHP-Code:if($content == NULL) {
readfile("alternativ.jpg");
} else {
echo $content;
}
GrußPHP-Code:// entweder: (Mein Favorit wenn eine Zahl erwartet wird)
$id = intval($_GET['id']);
// oder weiter unten: (Alternativ, auch für Strings gültig)
$query = mysql_query("SELECT * FROM `accounts` WHERE ID='"
. mysql_real_escape_string($id) . "'");
BKGeändert von Bratkartoffel (22.11.11 um 13:08 Uhr) Grund: Siehe edit-Teil
Über eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Supersache hat funktioniert
Danke
Ähnliche Themen
-
Background-image im Body soll bei hover wechseln
Von knutkowalski im Forum Javascript & AjaxAntworten: 11Letzter Beitrag: 20.08.09, 13:25 -
Image Typ ausgeben
Von partyspezial im Forum PHPAntworten: 3Letzter Beitrag: 01.12.06, 19:24 -
Alles vor <body> u. nach </body> löschen
Von online-markus im Forum PHPAntworten: 3Letzter Beitrag: 05.03.05, 14:20 -
RegEx-Hilfe Nur BODY einer HTML ausgeben
Von Act of Fate im Forum PHPAntworten: 8Letzter Beitrag: 20.08.04, 12:03 -
CSS-Style im Body-Tag (background-image) funktioniert im Netscape nicht!
Von Condor im Forum CSSAntworten: 2Letzter Beitrag: 19.07.01, 11:11





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren