Ankündigung

Einklappen
Keine Ankündigung bisher.

Bild aus MySQL Datenbank wird nicht korrekt angezeigt

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bild aus MySQL Datenbank wird nicht korrekt angezeigt

    Hallo,
    Ich beschäftige mich noch nicht allzulange mit PHP und deswegen habe ich hier mal eine Frage.
    Ich habe eine ( eigentlich 3 ) PHP Deteien geschrieben die mit denen man ein Bild in eine MySQL Datenbank hochladen kann, und danach soll das Hochgeladene Bild dem User direkt angezeigt werden.
    Abe hier erstmal die 3 Dateien

    1. Datei ( upload.php )
    Code:
    <!DOCTYPE html>
    <html>
        <head>
            <title>
                Upload an Image
            </title>
    
        </head>
        <body>
            <form action="upload.php" method="post" enctype="multipart/form-data">
                File:
                <input type="file" name="image" /> <input type="submit" value="Upload" />
            </form>
            <?php
                //Verbindung zur Database erstellen
                include 'connect.php';
    
                //Datei auswählen
                $file = $_FILES['image']['tmp_name'];
    
                if (!isset($file))
                    echo "Please select an image.";
                    else {
                        $image = addslashes(file_get_contents ($_FILES['image']['tmp_name']));
                        $image_name = addslashes($_FILES['image']['name']);
                        $image_size = getimagesize($_FILES['image']['tmp_name']);
    
                        if ($image_size==FALSE)
                            echo "That's not an image.";
                            else {
                                if (!$insert = mysql_query("INSERT INTO img VALUES ('', '$image_name', '$image')"))
                                    echo "Problem uploading image.";
                                    else {
                                        $lastid = mysql_insert_id();
                                        echo "Image uploaded.<p />Your image:<p /><img src=get.php?id=$lastid />";
                                    }
    
                            }
    
    
                    }
    
    
    
    
    
    
    
             ?>
    
    
    
    
        </body>
    </html>
    2. Datei ( connect.php )
    Code:
    <?php
        mysql_connect("localhost", "******", "******") or die (mysql_error());
        mysql_select_db("******") or die (mysql_error());
    ?>
    3. Datei ( upload_get.php )
    Code:
    <?php
        //Verbindung zur Database erstellen
        include 'connect.php';
    
        $id = addslashes($_REQUEST['id']);
    
        $image = mysql_query("SELECT * FROM store WHERE id=$id");
        $image = mysql_fetch_assoc($image);
        $image = $image['image'];
    
        header ("Content-type: image/jpeg");
    
        echo $image;
    
    
    
    
    
    
    ?>
    Mein Problem ist jetzt das das Uploaden auch klappt nur das er mir dann nicht das Bild richtig anzeigt, sondern nur einen Rahmen in dem "Bild" steht ( weiß nicht genu wie man das beschreiben soll.
    Hoffe das mir einer sagen kann wo der Fehler ist ...

    MFG
    MsMagiczZ

  • #2
    validiere bitte den HTML-Code, den dein(e) PHPScript(e) erzeugen ... dein <img-Element da ist zum Beispiel nicht korrekt

    da fehlen die QUotes um die Src-Angabe .-. und das Alt-Attribut auch...

    Kommentar


    • #3
      Zitat von MsMagiczZ Beitrag anzeigen
      Hoffe das mir einer sagen kann wo der Fehler ist ...
      Das herauszufinden, ist deine Aufgabe

      Voraussetzung dafür, dass dir das gelingt, ist allerdings, dass du auch erst mal ein vernünftiges Fehlerhandling implementierst - das machst du aber bspw. an der Stelle, wo du das Bild aus der Datenbank zu holen versuchst, überhaupt nicht.

      error_reporting vernünftig einstellen, MySQL-Fehler vernünftig abfragen/behandeln, header auskommentieren - und dann das Script, das das Bild anzeigen soll, mal direkt im Browser aufrufen.

      Und addslashes ist die falsche Funktion zur Behandlung von Daten vor dem einfügen in eine MySQL-Query. Bitte erst mal diesen Artikel vollständig durcharbeiten, auch die zweite Seite: http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel

      Kommentar


      • #4
        Ja, Schuldigung, die Sache ist halt das ich mich noch wirklich nicht lange mit PHP beschäftige, und ich würde dann mal sagen das mir so ein bischen die Routine fehlt, wenn es darum geht die Fehler etc. zu finden ...

        Kommentar


        • #5
          vllt. anstatt
          echo $image;
          so:
          echo "$image";

          Kommentar


          • #6
            achso, sorry, ich habs nicht ganz durchgeguckt. probiers mal so:

            PHP-Code:
            $query mysql_query("SELECT * FROM store WHERE id=$id");
            while(
            $row mysql_fetch_object($query))    
               {
            $image "$row->image";

            Wichtig ist auch, dass die Bilddatei richtig in der datenbank gespeichert ist. Es müssen auch Bilder-dateien sein (z.b. .jpg oder .gif ...)


            LG Aceh

            Kommentar


            • #7
              Zitat von eagle275 Beitrag anzeigen
              validiere bitte den HTML-Code, den dein(e) PHPScript(e) erzeugen ... dein <img-Element da ist zum Beispiel nicht korrekt

              da fehlen die QUotes um die Src-Angabe .-. und das Alt-Attribut auch...
              Also ich seh kein Img Tag.

              Kommentar


              • #8
                Zitat von Aceh Beitrag anzeigen
                vllt. anstatt
                echo $image;
                so:
                echo "$image";
                So ein Quatsch. Sehr unschöne Programmierung.

                Zitat von mepeisen Beitrag anzeigen
                Also ich seh kein Img Tag.
                Da ist aber eins

                Kommentar


                • #9
                  Zitat von tkausl Beitrag anzeigen
                  Da ist aber eins
                  Hab ich wohl übersehen. Davon abgesehen: ChrisB hat alles dazu gesagt was dazu gesagt werden muss. Alles weitere Herumspekulieren macht wenig Sinn. Wenn die Fehlerbehandlung richtig gemacht wird, wenn error-reporting richtig eingestellt ist, sagt PHP ganz deutlich, dass da was nicht passt.
                  Auch Firebug kann Aufschluss geben oder ein Blick in den Quelltext der generierten Seite. Auch dort wird man was vermissen.

                  Kommentar

                  Lädt...
                  X