| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

29-05-2008, 23:18
|
|
aSkInG
Newbie
|
|
Registriert seit: Aug 2006
Beiträge: 13
|
|
Bild aus Datenbank erzeugen
Hallo Leute.
also ich sitze da schon etwas länger dran und ich komme nicht auf die Lösung.
Ich weiß ein Bild in die Datenbank zu stopfen ist nicht zu empfeheln sondern nur die URL. Trotzdem möchte ich gerne Favicons in die Datenbank tun. Da ich auch die Größe prüfe werden die nicht alzu groß sein. Also sollte es nicht das Problem sein.
Nun ich habe erstmal testweise irgendein Bild hochgeladen. Ist alles drinne in der Datenbank. Nun möchte ich das ganz gerne auslesen.
Wie ich das machen soll weiß ich nicht. Daten wurden mit htmlspecialchars() und addslashes eingegeben und und mit decode und strip ausglesen bzw. in Variable gespeichert. So, nun habe ich
PHP-Code:
echo '<img src="' . $favicon . '">';
eingegben: Hat natürlich nicht geklappt, wäre auch zu schön gewesen um wahr zu sein
Na ja nun habe ich das ganze So gemacht:
PHP-Code:
if($favicon != "" && isset($favicon))
{
echo '<div id="uploadimage"><img src="makeimage.php?id=' . $id . '"</div>';
}
die Datei makeimage:
PHP-Code:
$id = $_GET['id'];
$db = DB_CONNECT($DB_HOST, $DB_USER, $DB_PASSWORT, $DB_NAME);
$abfrage = "SELECT seiten.favicon FROM seiten WHERE seiten.id = '$id'";
$result = $db->query($abfrage);
$result = $result->fetch_assoc();
$favicon = htmlspecialchars_decode($result['favicon']);
$favicon = stripslashes($favicon);
$db-close();
header ("Content-type: image/jpeg");
$im = ImageCreateFromJPEG($favicon);
ImageJPEG($im);
Tja, falsch ist es scheinbar trotzdem
Was mache ich falsch! Bitte um Hilfe.
Vielen Dank
André
|

29-05-2008, 23:22
|
|
Griecherus
PHP Senior
|
|
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
|
|
Fehlermeldungen? Testausgaben gemacht? Wie sieht das Ergebnis bisher aus?
Fragen über Fragen
Grüße
|

29-05-2008, 23:25
|
|
aSkInG
Newbie
|
|
Registriert seit: Aug 2006
Beiträge: 13
|
|
Na ja, eben halt nichts.
Es ist der Bereich im Imagetag der leer im Opera ist und in Mozilla ein rotes x anzeigt! Sprich es wird angezeigt, dass da ein Bild sein sollte jedoch wird nichts angezeigt.
AUch wenn ich die Datei einzeln aufrufe klappt das net. id wird übergeben, die Daten existieren.
Ich bin ja der Meinung, dass ich irgendwas mit dem makeimage falsch gemacht habe.
|

29-05-2008, 23:41
|
|
Griecherus
PHP Senior
|
|
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
|
|
Und Testausgaben? Was gibt
PHP-Code:
echo '<pre>' . print_r($result, true) . '</pre'>;
aus?
Wie speicherst du das Bild in der Datenbank?
|

29-05-2008, 23:52
|
|
aSkInG
Newbie
|
|
Registriert seit: Aug 2006
Beiträge: 13
|
|
PHP-Code:
Array
(
[favicon] => /tmp/phpaA8z4C
)
wird ausgegeben.
Ich speichere das Bild als BLOB ab.
PHP-Code:
if(isset($_FILES['favicon']['tmp_name']) && $_FILES['favicon']['tmp_name'] != '')
{
// Hier unbedingt noch mal überprüfen, ob es sich um die richtige Größe etc. handelt!
// Alles andere löschen!
$favicon = $_FILES['favicon']['tmp_name'];
$favicon = htmlspecialchars($favicon);
$favicon = addslashes($favicon);
}
und hier wird es eingetragen:
PHP-Code:
$db = DB_CONNECT($DB_HOST, $DB_USER, $DB_PASSWORT, $DB_NAME);
$select = "INSERT INTO seiten VALUES ('" . $id . "', '" . $name . "', '" . $menuname ."', '"
. $menu . "', '" . $inhalt . "',
'" . $favicon . "', '" . $meta_name ."', '"
. $meta_keys ."', '" . $meta_author . "', '" . $meta_beschreibung . "', '"
. $meta_titel ."','" . $guestbook ."')";
$doIt = $db->query($select);
André
Geändert von aSkInG (30-05-2008 um 00:08 Uhr)
|

29-05-2008, 23:58
|
|
Griecherus
PHP Senior
|
|
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
|
|
Nimm mal das imagecreatefromjpeg und imagecreate raus. Hast du die Datein tatsächlich in binärer Form in der Datenbank, sollte es echo $result['favicon'] heissen.
Und bitte Code umbrechen. Der erzeugt eine schreckliche Überbreite.
|

30-05-2008, 00:10
|
|
aSkInG
Newbie
|
|
Registriert seit: Aug 2006
Beiträge: 13
|
|
Okay, ich habe jetzt anstelle
PHP-Code:
$id = $_GET['id'];
$db = DB_CONNECT($DB_HOST, $DB_USER, $DB_PASSWORT, $DB_NAME);
$abfrage = "SELECT seiten.favicon FROM seiten WHERE seiten.id = '$id'";
$result = $db->query($abfrage);
$result = $result->fetch_assoc();
$favicon = htmlspecialchars_decode($result['favicon']);
$favicon = stripslashes($favicon);
$db-close();
header ("Content-type: image/jpeg");
$im = ImageCreateFromJPEG($favicon);
ImageJPEG($im);
folgendes stehen:
PHP-Code:
include("../config/config.php");//Nur da, damit test durchgeführt werden kann
include("../includes/functions.php");//auch nur zum test da
$id = $_GET['id'];
$db = DB_CONNECT($DB_HOST, $DB_USER, $DB_PASSWORT, $DB_NAME);
$abfrage = "SELECT seiten.favicon FROM seiten WHERE seiten.id = '$id'";
$result = $db->query($abfrage);
$result = $result->fetch_assoc();
$favicon = htmlspecialchars_decode($result['favicon']);
$favicon = stripslashes($favicon);
echo $result['favicon'];
echo "<br>" . $favicon;
echo "<br>" . '<img src="'.$favicon.'">';
leider zeigt die ausgabe zweimal den Inhalt der Variable, aber nicht das Bild und nr.3 zeigt wieder ein Bildbereich an, ohne Bild
André
|

30-05-2008, 00:38
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Zitat:
Original geschrieben von aSkInG
[B]
PHP-Code:
Array
(
[favicon] => /tmp/phpaA8z4C
)
|
Dann hast du nicht den Inhalt der hochgeladenen Datei,sondern nur ihren Namen im temporären Uploadverzeichnis des Servers gespeichert.
|

30-05-2008, 00:41
|
|
aSkInG
Newbie
|
|
Registriert seit: Aug 2006
Beiträge: 13
|
|
ok, das kann sein. Das kann sogar sehr gut sein
Wie LADE ich denn explizit die datei hoch?
André
|

30-05-2008, 00:45
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
move_uploaded_file und Konsorten.
Beispiele gibts im PHP-Handbuch im Kapitel "Uploads".
|

30-05-2008, 00:47
|
|
aSkInG
Newbie
|
|
Registriert seit: Aug 2006
Beiträge: 13
|
|
Danke, werde ich mal sehen.
Aber mit move_uploaded_files kann ich die Datei auch in die Datenbank kopieren?
Das wusste ich noch nicht.
Danke nochmals
André
|

30-05-2008, 00:49
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Nein kopieren nicht, aber in dein Verzeichnis holen, damit du sie weiterverarbeiten kannst.
Das Übernehmen in die Datenbank machst du dann mit fopen() und fread().
|

30-05-2008, 00:57
|
|
aSkInG
Newbie
|
|
Registriert seit: Aug 2006
Beiträge: 13
|
|
Ok, also ich schiebe die Datei erstmal in einen Ordner. Dann schiebe ich die datei mit fopen und fread in die Datenbank? Und anstelle einer Datei gebe ich dann die Datenbank an?
Sorry, aber ich verstehe das gerade nicht. Habe auch schon im Handbuch nachgesehen. Aber ich glaube ich bin auch zu müde.
Wenn du vielleicht so lieb wärst, könntest du mir das dann einmal erklären? Vielen Dank.
André
|

30-05-2008, 01:04
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Nein, du mußt das Bild mit fread() auslesen und dann mit einem mysql_query() ganz normal mit "INSERT INTO...." in ein Datenbankfeld schreiben.
|

30-05-2008, 09:51
|
|
aSkInG
Newbie
|
|
Registriert seit: Aug 2006
Beiträge: 13
|
|
Gut, also soweit klappt alles. Habe nun wirklcih das Bild hochgeladen.
Nun habe ich aber noch Probleme mit dem auslesen.
Ich habe nur die Variable ausgegeben im script makeimage.
Ich bekomme auch schon ein Bereich angezeigt der die richtige größe hat, auch die Farbtiefe von 8bits wird mir angezeigt und auch, dass es mit adobe erstellt worden ist.
Soweit so gut. Aber das Bild ansich wird mir NICHT angezeigt!
Woran mag das liegen?
Danke
André
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|