Bild aus Datenbank erzeugen

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

  • #16
    Das ganze htmlspecialchars Gedöns ist völlig überflüssig!!
    Auch die slash verwurstung ist, nunja, unvollkommen.
    Benutze die Escape Funktion des DB Treibers wenn nötig.
    Welche DB verwendest du überhaupt?

    Auch das jpg Gedöns ist falsch, denn es ist ja gar kein Jpg, oder?
    Wir werden alle sterben

    Kommentar


    • #17
      Doch zu testzwecken ist es noch ein jpg. nachher wird das für das favicon angepasst.

      ich habe jetzt anstelle jpeg jpg genommen.

      Wieso ist das htmlspecialchars und slashes unsinnig? Was ich so gelesen habe, da steht das man das eigentlich immer machen sollte. Nun ja, ich kann das auch wegnehmen. Ich nutzte MySQL.

      Nun ich habe auch schon einen kleinen Erfolg, und zwar wird ein kleiner Teil des Bildes auch angezeigt. Aber danach bleibt alles weiß

      Hier mal den Code von makeimage.php
      PHP-Code:
      header("Content-type: image/jpg");
      include(
      "../config/config.php");
      include(
      "../includes/functions.php");
      $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 
      $favicon

      Kommentar


      • #18
        Wieso ist das htmlspecialchars und slashes unsinnig? Was ich so gelesen habe, da steht das man das eigentlich immer machen sollte. Nun ja, ich kann das auch wegnehmen. Ich nutzte MySQL
        Schmeiß das Buch weg...


        Nutze nur bei dem Eintragen: mysql_real_escape_string()

        Beim Lesen brauchst du nix zu machen. Nur die richtigen Header setzen und zum Browser schicken.
        Wir werden alle sterben

        Kommentar


        • #19
          Ok, werde ich mir merken.
          Du scheinst kein Anhänger von htmlspecialchars zu sein etc. Darf ich nebenbei fragen warum?

          UNd dann noch was. Ich habe den Header ja nun richtig gesetzt und ich bekomme ja uach daten angezeigt. Aber nicht die Bilder.

          http://www.webby24.de/test/admin/makeimage.php?id=6
          da mal ein Link ohne Bild
          und hier eins mit einem halebn bild:
          http://www.webby24.de/test/admin/makeimage.php?id=73

          Kommentar


          • #20
            Du scheinst kein Anhänger von htmlspecialchars zu sein etc. Darf ich nebenbei fragen warum?
            Ich bin ein ausgesprochener Fan von htmlspecialchars() und htmlentities() !!

            "Image-binär-Daten" !== "HTML"
            Oder?


            Diese beiden Funktionen sind bei der Erzeugung von HTML ungemein hilfreich!
            Aber du willst ja kein HTML erzeugen, sondern ein Bild in der DB speichern. Also sind es definitiv die falschen Funktionen für diesen Zweck.

            Schau dir die Seiten im Handbuch nochmal ganz genau an:
            http://de3.php.net/manual/de/functio...ecialchars.php
            http://de3.php.net/manual/de/function.htmlentities.php
            Steht das irgend etwas über DBs oder so...?


            Zeige doch mal deinen Code wie er jetzt aussieht!
            Das Lesen und das Schreiben.
            Zuletzt geändert von combie; 30.05.2008, 10:39.
            Wir werden alle sterben

            Kommentar


            • #21
              Okay,

              ich habe aber eine andere MySQL Verbindung, daher will mysql_real_escape_string nicht. DAher habe ich einfach alles rausgenommen.

              Hier erstmal die Formular Daten:
              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'];
                                      
              $size $_FILES['favicon']['size'];
                                      
              $image fopen($favicon'r');
                                      
              $inputdata fread($image$size);
                                      
              //$inputdata = htmlspecialchars($inputdata);
                                      //$inputdata = addslashes($inputdata);
                                      
                                      //$favicon = htmlspecialchars($favicon);
                                      //$favicon = addslashes($favicon);
                                  
              } else {
                                      
              $favicon NULL;
                                  } 
              nun das senden und ausführen an die DB
              PHP-Code:
              // Es wurden nun alle empfangenen Daten in kurze Variablen gespeichert!!!!
                                  // Nun alle Daten in die Datenbank eingeben und bei Erfolg, eine Erfolgsmeldung ausgeben.
                                  
              $db DB_CONNECT($DB_HOST$DB_USER$DB_PASSWORT$DB_NAME);
                                  
              $select "INSERT INTO seiten VALUES ('" $id "', '" $name 
              "', '" $menuname ."', '" $menu "', '" $inhalt 
              "', '" $inputdata "', '" $meta_name 
              ."', '" $meta_keys ."', '" $meta_author 
              "', '" $meta_beschreibung "', '" 
              $meta_titel ."','" $guestbook ."')";
                                  
              $doIt $db->query($select);
                                  if(
              $doIt)
                                  {
                                      echo 
              '<h1>Gratulation!</h1><p>Alle Daten wurden erfolgrecih eingespeichert!</p>
              <p><a href="einstieg.php?PageId=seiten">Hiermit kehren Sie zur Administrationsoberfläche Zurück.</a>
              </p>'
              ;
                                  } 
              Nun die makeimage.php
              PHP-Code:
              <?php
              header
              ("Content-type: image/jpeg");
              include(
              "../config/config.php");
              include(
              "../includes/functions.php");
              $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'];

              ?>
              Na ja da hast du recht. Ich habe nur gelernt, das alles was in die DB rein geschrieben werden soll, so escapet werden sollte. Daher mache ich das.

              Kommentar


              • #22
                Gar nichts machen kann doch auch nur falsch sein!
                Ohne das mysql_real_escape_string() wirds nichts!

                Was "eine andere Verbindung" ist, weiß ich auch nicht...
                Da bildest du dir was ein.

                Und die sind ja immer noch da:
                $favicon = htmlspecialchars_decode($result['favicon']);
                $favicon = stripslashes($favicon);

                Ich habe dir alles geschrieben, was ich dazu weiß!
                Mach was draus....
                Zuletzt geändert von combie; 30.05.2008, 10:56.
                Wir werden alle sterben

                Kommentar


                • #23
                  Original geschrieben von aSkInG

                  ich habe aber eine andere MySQL Verbindung, daher will mysql_real_escape_string nicht. DAher habe ich einfach alles rausgenommen.
                  mysqli_real_escape_string()
                  Gruss
                  H2O

                  Kommentar


                  • #24
                    Danke!

                    An euch beide!
                    es hat funktioniert! Ich kam wieder nicht auf das i, das verdammte

                    So klappt auch alles.

                    Ach ja, noch eins, ich danke dir für deine geduld, doch bin ich nicht beratungsresitent, ich habe lediglich vergessen die hier auszuklammern

                    Zumal ich das testen wollte, ob es so besser ist. War nicht der Fall. Habe ich erkannt.

                    Danke nochmal

                    Kommentar

                    Lädt...
                    X