Mit PHP Bilder in eine MYSQl Datenbank speichern!?

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

  • Mit PHP Bilder in eine MYSQl Datenbank speichern!?

    Hi Leute hab mal wieder eine Frage:

    Ich möchte bilder in eine Datenbankspeichern!

    Das ist der Form Header von meiner index.php
    PHP-Code:
    <form name="Kartenvorschau" action="vorschau.php" enctype="multipart/form-data" method="post" 
    und das ist das Input-type in der index.php in der ich das Bild auswählen kann:
    PHP-Code:
    input type="file" name="form_data" style="border-style: dotted; border-width: 1"
    Da ich das ganze per Post an die vorschau.php schicke und bei mir die Registerglobals auf ="off" sind, sieht der code in der vorschau.php wie folgt aus:

    PHP-Code:
    <?php
    if ($_POST[radiobutton] == 4){
        echo 
    $_POST['form_data'];
       
    $bild addslashes(fread(fopen($_POST['form_data'], "r"), filesize($_POST['form_data'])));
       
    $name $form_data_name;
       
    $sql "INSERT INTO karten (bindata,filename) VALUES ('$bild', '$form_data_name')";
       echo 
    $sql;//das ist nur da um zu sehen was in die Datenbank schreibt
       
    $result MySql_Query($sql);
    }
    ?>
    Leider schreibt er mir nichts in die DB!!
    Ich hab mich an dieses Skript gehalten:

    http://www.phpbuilder.com/columns/florian19991014.php3

    Hat von euch einer eine Idee!!??

  • #2
    es gibt noch mehr als nur $_POST, da wäre z. b. $_FILES

    schau dir das mal mit print_r an, dann siehst du auch, was du davon verwenden musst
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Re: Mit PHP Bilder in eine MYSQl Datenbank speichern!?

      Original geschrieben von Morpheus2100
      Ich möchte bilder in eine Datenbankspeichern!
      warum?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Warum ich Bilder in eine Datenbank speichern will:

        Leider muss ich es als Projekt in meiner Schule abgeben und mein Lehere bildet sich ein er will die ganzen Bilder in einer Datenbank!! Und ich darf keine Dateien erstellen!!! (Sicherheit und so....)

        Ich will ja auch lieber das andere das ist mir schon klar das die performance besser ist und er wäre auch für mich leichter gewesen aber er will es hald mal so haben!!

        Danke
        MfG
        Mike

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          es gibt noch mehr als nur $_POST, da wäre z. b. $_FILES

          schau dir das mal mit print_r an, dann siehst du auch, was du davon verwenden musst
          Hab ich jetzt gemacht aber leider gehts immer noch nicht!!
          neuer Code:

          PHP-Code:
          <?php
          if ($_POST['Karteabschicken.x']) {
              if (
          $_POST[radiobutton] == 4){
                  echo 
          $_FILES['form_data'];
                 
          $bild addslashes(fread(fopen($_FILES['form_data'], "r"), filesize($_FILES['form_data'])));
                 
          $name $form_data_name;
                 
          $sql "INSERT INTO karten (bindata,filename) VALUES ('$bild', '$form_data_name')";
                 echo 
          $sql;
                 
          $result MySql_Query($sql)or die(mysql_error());
              }   
          }

          ?>

          Kommentar


          • #6
            print_r ist was anderes als echo

            mach mal
            PHP-Code:
            echo '<pre>';
            print_r($_FILES);
            echo 
            '</pre>'
            und schau dir das ergebnis an

            wenn dir das nicht weiterhilft, einfach mal auf dieser Seite schauen und danach die ausgabe hier posten (wenn's nicht klappt)
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              [QUOTE]Original geschrieben von mrhappiness
              [B]print_r ist was anderes als echo

              mach mal
              PHP-Code:
              echo '<pre>';
              print_r($_FILES);
              echo 
              '</pre>'
              und schau dir das ergebnis an
              [QUOTE]

              Ich habs mit diesem Code probiert:
              PHP-Code:
              <?php
              if ($_POST['Karteabschicken.x']) {
                  if (
              $_POST[radiobutton] == 4){
                      echo 
              $_FILES['form_data'];
                     
              $bild addslashes(fread(fopen($_FILES['form_data'], "r"), filesize($_FILES['form_data'])));
                     
              $name $form_data_name;
                     
              $sql "INSERT INTO karten (bindata,filename) VALUES ('$bild', '$form_data_name')";
                     echo 
              $sql;
                     
              $result MySql_Query($sql)or die(mysql_error());
                         echo 
              '<pre>';
                      
              print_r($_FILES);
                      echo 
              '</pre>';
                  }   
              }

              ?>
              Hat aber leider nichts ausgegeben!!!

              Kommentar


              • #8
                die Daten werden nach dem Posten in ein temp. Verzeichnis auf dem
                Server abgelegt, der Name der temp. Datei ist
                $_FILES['form_data']['tmp_name']
                du liest das Manual ja nicht richtig, wenn du dich schon für Lesen
                entschieden hast, dann lese bitte auch alles

                Kommentar


                • #9
                  Original geschrieben von asp2php
                  die Daten werden nach dem Posten in ein temp. Verzeichnis auf dem
                  Server abgelegt, der Name der temp. Datei ist
                  $_FILES['form_data']['tmp_name']
                  du liest das Manual ja nicht richtig, wenn du dich schon für Lesen
                  entschieden hast, dann lese bitte auch alles
                  Hab ich gemacht, leider gibt er immer noch nichts aus!!
                  PHP-Code:
                  <?php
                  if ($_POST['Karteabschicken.x']) {
                      if (
                  $_POST[radiobutton] == 4){
                          echo 
                  $_FILES['form_data']['tmp_name'];
                         
                  $bild addslashes(fread(fopen($_FILES['form_data'], "r"), filesize($_FILES['form_data'])));
                         
                  $name $form_data_name;
                         
                  $sql "INSERT INTO karten (bindata,filename) VALUES ('$bild', '$form_data_name')";
                         echo 
                  $sql;
                         
                  $result MySql_Query($sql)or die(mysql_error());
                      }   
                  }
                  ?>

                  Kommentar


                  • #10
                    $form_data_name

                    sicher, dass es das noch gibt, wenn register_globals auf "off" steht?


                    und warum in drei teufels namen hasst du $_FILES['form_data']['tmp_name'] so arg, dass du es nicht verwendest?
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      Original geschrieben von mrhappiness
                      $form_data_name

                      sicher, dass es das noch gibt, wenn register_globals auf "off" steht?


                      und warum in drei teufels namen hasst du $_FILES['form_data']['tmp_name'] so arg, dass du es nicht verwendest?
                      Weil er mir es schon beim ersten echo nicht ausgibt !!!
                      Deshalb verwende ich es nicht die ganze Zeit!!

                      Kommentar


                      • #12
                        mach statt
                        PHP-Code:
                        echo $_FILES['form_data']['tmp_name']; 
                        mal
                        PHP-Code:
                        echo '<pre>';
                        print_r($_FILES);
                        echo 
                        '</pre>'
                        was kommt raus?
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          Original geschrieben von mrhappiness
                          mach statt
                          PHP-Code:
                          echo $_FILES['form_data']['tmp_name']; 
                          mal
                          PHP-Code:
                          echo '<pre>';
                          print_r($_FILES);
                          echo 
                          '</pre>'
                          was kommt raus?
                          Habs probiert mit diesem Quellc.:
                          PHP-Code:
                          <?php
                          if ($_POST['Karteabschicken.x']) {
                              if (
                          $_POST[radiobutton] == 4){
                                     echo 
                          '<pre>';
                                  
                          print_r($_FILES['form_data']);
                                  echo 
                          '</pre>';
                                 
                                 
                          // echo $_FILES['form_data']['tmp_name'];
                                 
                          $bild addslashes(fread(fopen($_FILES['form_data'], "r"), filesize($_FILES['form_data'])));
                                 
                          $name $form_data_name;
                                 
                          $sql "INSERT INTO karten (bindata,filename) VALUES ('$bild', '$form_data_name')";
                                 echo 
                          $sql;
                                 
                          $result MySql_Query($sql)or die(mysql_error());
                              }   
                          }

                          ?>
                          und mit diesem:
                          PHP-Code:
                          <?php
                          if ($_POST['Karteabschicken.x']) {
                              if (
                          $_POST[radiobutton] == 4){
                                     echo 
                          '<pre>';
                                  
                          print_r($_FILES);
                                  echo 
                          '</pre>';
                                 
                                 
                          // echo $_FILES['form_data']['tmp_name'];
                                 
                          $bild addslashes(fread(fopen($_FILES['form_data'], "r"), filesize($_FILES['form_data'])));
                                 
                          $name $form_data_name;
                                 
                          $sql "INSERT INTO karten (bindata,filename) VALUES ('$bild', '$form_data_name')";
                                 echo 
                          $sql;
                                 
                          $result MySql_Query($sql)or die(mysql_error());
                              }   
                          }

                          ?>
                          Bei beiden hat er nichts ausgegeben!!

                          Kommentar


                          • #14
                            mach die drei zeilen mal direkt an den anfang, wenn er nichts ausgibt, nochnichtmal Array(), dann kommt er überhaupt nicht zu den anweisungen

                            was ist eigentlich Karteabschicken.x?
                            wenn das ein grafischer submit-button is, dann versuch mal _ statt .
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              Original geschrieben von mrhappiness
                              mach die drei zeilen mal direkt an den anfang, wenn er nichts ausgibt, nochnichtmal Array(), dann kommt er überhaupt nicht zu den anweisungen

                              was ist eigentlich Karteabschicken.x?
                              wenn das ein grafischer submit-button is, dann versuch mal _ statt .

                              Karteabschicken.x ist ein fettes Missverständnis meiner seits, da ich das Skript erst später starten wollte aber ich es leider schon vorher laufen lassen muss!!

                              Und jetzt gibt er mir auch bei:

                              PHP-Code:
                              echo '<pre>';
                                  
                              print_r($_FILES);
                                  echo 
                              '</pre>'
                              folgendes aus:

                              PHP-Code:
                              Array
                              (
                                  [
                              form_data] => Array
                                      (
                                          [
                              name] => 10.jpg
                                          
                              [type] => image/pjpeg
                                          
                              [tmp_name] => C:\WINDOWS\TEMP\php30.tmp
                                          
                              [error] => 0
                                          
                              [size] => 53218
                                      
                              )


                              Kommentar

                              Lädt...
                              X