Formular mit Bildupload

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

  • Formular mit Bildupload

    Hallo zusammen,

    kurz zur Einleitung: Ich programmiere (ich versuch es halt) eine Datenbank mit einem Uploadformular, Suchformular, Vorschau-und Detailseite.
    Bin absolut unerfahren und mache meine ersten php- Schritte.

    Es scheitert aber bereits beim Uploadformular.
    Ich bekomme zwar die Textfelder in die Datenbank, nicht jedoch das Bild in meinem Ordner auf dem Server.

    Thema Suchfunktion: Habe es benützt, habe bereits Stunden mit ihr verbracht. Ich finde leider meinen Fehler nicht.

    Für Hilfe eurerseits bin ich mehr als dankbar.

    lg
    Ptolemaios

    PS: Entschuldigt bitte den gesamten Code, ich weiß leider nicht was für mein Problem wesentlich ist.

    PHP-Code:
    $db_host = "localhost";
    $db_user = "***";
    $db_pass = "***";
    $db_name = "***";

    $tempname = $_FILES['file']['tmp_name'];
    $name = $_FILES['file']['name'];
    $type = $_FILES['file']['type'];
    $size = $_FILES['file']['size'];
    $maxdatasize = 150000;
     
    if (empty($name)) $error [] ="Du hast kein Bild ausgewählt!";
     
    if ($type != "image/gif" && $type != "image/jpeg" && $type != "image/JPEG" && $type != "image/bmp") $error[] 
     
    if ($size > $maxdatasize) $error[] = "Das Bild ist zu groß!<br>Es darf maximal  ".$maxdatasize." groß sein.";
    if (empty($error)) {
          move_uploaded_file ($tempname, "/bilder/".$name);
          echo ("Dein Bild wurde erfolgreich hinzugefügt"); 
    }
    else {
          foreach ($error as $err) echo ($err."<br>");
    }
        
        if (isset( $_POST['eintragen'] ))
    {
        // Maskierende Slashes aus POST entfernen
        $_POST = get_magic_quotes_gpc() ? array_map( 'stripslashes', $_POST ) : $_POST;
        
        // Inhalte der Felder aus POST holen
        $Nominal = $_POST['Nominal'];
        $Kaiser = $_POST['Kaiser'];
        
        
          $conID = mysql_connect ( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );
        if ($conID)
        {
            mysql_select_db( $db_name, $conID );
        }
        
       
        $sql = "INSERT INTO `Tabelle`
                    (`Nominal`, `Kaiser` )
                VALUES(
                    '" .mysql_real_escape_string( $Nominal ). "',
                    '" .mysql_real_escape_string( $Kaiser ). "'
                    )";
        
        mysql_query( $sql );

        if (mysql_affected_rows() == 1)
        {
            echo "<h3>Upload in Datenbank erfolgreich</h3>";
     
        }
        else
        {
            echo "<h3>Fehler beim Upload</h3>";
            
        }
    }

    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Unbenanntes Dokument</title>
    </head>

    <form action=" <?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="formular" id="formular" enctype="multipart/form-data">
      <input type="file" name="file" />
    </p>
    <p>&nbsp;</p>
    <table width="100" border="0">
      <tr>
        <td><span class="Stil3">Nominal</span></td>
      </tr>
    </table>
    <table width="120" border="2">
      <tr>
        <td width="108"><input type="text" name="Nominal" id="Nominal" /></td>
      </tr>
    </table>
    <table width="100" border="0">
      <tr>
        <td><span class="Stil3">Kaiser</span></td>
      </tr>
    </table>
    <table width="120" border="2">
      <tr>
        <td width="108"><input type="text" name="Kaiser" id="Kaiser" /></td>
      </tr>
      <td height="57"><input type="submit" name="eintragen" id="eintragen" value="      Upload      " /></td>
                    </tr>
                    <tr>
                      <td height="71"><INPUT VALUE="Formular l&ouml;schen" TYPE=RESET></td>
    </table>
    </form>
    <p>&nbsp; </p>
    </body>
    </html>
    Echte Männer essen keinen Honig, echte Männer kauen Bienen

  • #2
    PHP-Code:
    $tempname $_FILES['file']['tmp_name'];
    $name $_FILES['file']['name'];
    $type $_FILES['file']['type'];
    $size $_FILES['file']['size'];
    $maxdatasize 150000;
     
    if (empty(
    $name)) {
      
    $error [] ="Du hast kein Bild ausgewählt!";

    if (
    $type != "image/gif" && $type != "image/jpeg" && $type != "image/JPEG" && $type != "image/bmp") {
      
    $error[] ;

    if (
    $size $maxdatasize) {
      
    $error[] = "Das Bild ist zu groß!<br>Es darf maximal  ".$maxdatasize." groß sein.";
    }
    if (empty(
    $error)) {
          
    move_uploaded_file ($tempname"/bilder/".$name);
          echo (
    "Dein Bild wurde erfolgreich hinzugefügt"); 
    }
    else {
          foreach (
    $error as $err) echo ($err."<br>");

    du arbeitest hier schon mit werten die noch gar nicht gesetzt sind! solange das formular nicht abgesendet wird, ist $_FILES leer. das findest du ganz schnell mit print_r($_FILES) heraus.

    btw: hier machst du es richtig:
    PHP-Code:
    if (isset( $_POST['eintragen'] )) {
      ...

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Danke für Deine Hilfe.

      Leider bin ich zu Dumm oder ich hab mich total verrannt. Ich sitze seit 4 Tagen bei dem Uploadformular und hab absolut keinen Durchblick mehr.

      Danke nochmal
      und lg
      Echte Männer essen keinen Honig, echte Männer kauen Bienen

      Kommentar


      • #4
        pack den ganzen upload-code in den folgenden block
        PHP-Code:
        if (isset( $_POST['eintragen'] )) 
        zum thema fehlersuche findest du hier ein paar infos und zum thema upload hier.

        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Danke, ich krieg es einfach nicht hin. Habe mich jetzt mit der Suche und den Ergebnissseiten versucht. Funktioniert auch nicht.

          Ich lass es gut sein.

          lg
          Echte Männer essen keinen Honig, echte Männer kauen Bienen

          Kommentar


          • #6
            Original geschrieben von Ptolemaios
            Danke, ich krieg es einfach nicht hin. Habe mich jetzt mit der Suche und den Ergebnissseiten versucht. Funktioniert auch nicht.

            Ich lass es gut sein.

            lg
            OffTopic:
            und noch einer, der beim ersten anzeichen problemen die flinte ins korn wirft


            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              OffTopic:
              tja, manche haben einfach nicht den nötigen geduldsfaden dafür
              Pierre Voit ( Freelancer seit 2004 )

              Kommentar


              • #8
                Original geschrieben von bloodyorchid
                OffTopic:
                tja, manche haben einfach nicht den nötigen geduldsfaden dafür
                OffTopic:
                oder den nötigen biss und ergeiz


                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Original geschrieben von Kropff
                  OffTopic:
                  oder den nötigen biss und ergeiz


                  peter

                  Halt! Stop!

                  Nein, ich werf die Flinte nicht ins Korn was php angeht.

                  Mein Problem ist, daß ich mich mit einlesen sehr schwer tu. Es fällt mir leichter, wenn ich einen Lehrer mit Fragen quälen kann.

                  Eigentlich wollte ich mit meiner neuen Datenbank am 1.12 starten, muß es wohl auf unbestimmte Zeit liegen lassen.
                  Ich werde nicht mehr mit so großen Projekten wie das meinige starten, sondern ganz ganz unten, mit den einfachsten Grundlagen beginnen.




                  lg
                  Ptolemaios
                  Echte Männer essen keinen Honig, echte Männer kauen Bienen

                  Kommentar


                  • #10
                    Original geschrieben von Ptolemaios
                    Ich werde nicht mehr mit so großen Projekten wie das meinige starten, sondern ganz ganz unten, mit den einfachsten Grundlagen beginnen.
                    Ptolemaios
                    ist eh der vernünftigste weg. den bin ich auch gegangen.

                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar

                    Lädt...
                    X