mysqli - bild auslesen funktioniert nicht

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Dann entferne mal bei dem Bildtyp das Aussenden der entsprechenden Header (also bei einem jpg das header() nach dem case "jpg"). Schaue dann, ob da evtl. irgendwelche PHP-Fehlermeldungen am Anfang angezeigt werden.

    Schaue zusätzlich, ob in der Datenbank das komplette Bild gespeichert ist (ich würde einfach die erste und letzte Zeile der Datenbank base64-decodieren und mit dem Inhalt des hochgeladenen Bildes vergleichen, um Fehler beim Auslesen oÄ auszuschließen)
    Jan Thurau
    Software and Systems Engineer
    janthurau.de

    [IMG:http://www.pageheroes.com/media/image/pageheroes_logo.png] - We get your page working!
  • Eingefügt habe ich das Bild über phpmyadmin, und das decodiert ja nicht.
    Und wie ich gerade festgestellt habe, lag es daran, dass ich var_dump und 2x echo $mysqli->error; noch drin hatte -.-'
    Also jetzt läuft es so:

    Quellcode

    1. $type = $_GET['type'];
    2. $id = $_GET['id'];
    3. if ($type == "user")
    4. {
    5. $sql = "SELECT profilpic, profilpic_type FROM user WHERE id = '$id'";
    6. $result = $mysqli->query($sql);
    7. $row = $result->fetch_object();
    8. $db_img = $row->profilpic;
    9. $type = $row->profilpic_type;
    10. $db_img = imagecreatefromstring($db_img);
    11. if ($db_img != false)
    12. {
    13. switch ($type)
    14. {
    15. case "jpg":
    16. header("Content-Type: image/jpeg");
    17. imagejpeg($db_img);
    18. break;
    19. case "gif":
    20. header("Content-Type: image/gif");
    21. imagegif($db_img);
    22. break;
    23. case "png":
    24. header("Content-Type: image/png");
    25. imagepng($db_img);
    26. break;
    27. }
    28. }
    29. imagedestroy($db_img);
    30. }
    Alles anzeigen
  • Nachtrag:

    habe aber gerade gemerkt, dass dann über das aufrufen mit <img src="bild.php[...]" /> dann z.B. Kontakten, oder z.B. die Datenbankverbindung nicht mitgenommen werde. Liegt das am header? Kann man das ändern? Wenn nicht wäre das sehr ärgerlich.

    Edit: Ok, mach ich, und type auch gleich mit
  • Also das mit Datenbankverbindung mitgenommen meinte ich so:

    Ich habe jetzt die Datei index.php in der eine Datei aus der Datenbank angezeigt wird, dieses Bild binde ich so ein: "<img src="data/templates/function/bild.php?type=user&id=2">". In der Datei ist das, wa sich oben geschrieben hab, plus dien Sicherheitsteil, der überprüft, ob eine gewisse Kontakte überliefert wurde, die in dex index.php eingebaut wurde.
    In der Datei index.php wurde über require_once alle nötigen dateien eingebunden, unter anderem der Aufbau der Datenbankverbindung.
    Allerdings wird in der bild.php (die übrigens nur über den img-tag eingebunden wurde) die konstante (was zum sofortigen scriptabbruch führt) und die Datenbankvebrindung nicht erkannt, weshalb nichts angezeigt wird.
    ich habe jetzt schon versucht, dass ich die datei bild.php über include in index.php eingebunden wird, und dann durch dem img-tag das bild ausgegeben wird, aber das funktioniert auch nicht.