Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] übergabe formular an datenbank

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] übergabe formular an datenbank

    Hallo Leute

    Also ich bin abseluter Neuling im Bereich PHP und bitte euch nun mal um Hilfe

    bei mir gehts um ein Script was daten in eine Sql Datenbank schreiben soll

    datenbank ist vorhanden und das auslesen der Datenbank klappt ohne Probleme

    wenn ich daten manuell eintrage, nur die daten aus dem formular werden leider

    nicht übergeben und ich weis einfach nicht mehr weiter hier mal der Code

    PHP-Code:
    <?
    error_reporting (E_ALL);
    // Die Datenbank-Tabelle "arbeit" hat folgende Felder:
    //id:  int(11)    auto_increment, primary
    //Woche:   varchar(50)
    //Montag:  varchar(50)
    //Dienstag:  varchar(50)
    //Mittwoch:  varchar(50)
    //Donnerstag:  varchar(50)
    //Freitag:  varchar(50)
    //Samstag:  varchar(50)

    $wasfehlt="";
    $allesda=0;
    if ( isset($Woche) or isset($Montag) or isset($Dienstag) or isset ($Mittwoch) or isset($Donnerstag) or isset ($Freitag) or isset ($Samstag)) {
        if ( empty($Woche))
            $wasfehlt="Bitte geben Sie den Woche ein!"; 
        if ( empty($Montag))
            $wasfehlt="Bitte geben Sie den Montag ein!";
        if ( empty($Dienstag))
            $wasfehlt="Bitte geben Sie den Dienstag ein!";
        if ( empty($Mittwoch))
            $wasfehlt="Bitte geben Sie die Mittwoch ein!";
        if ( empty($Donnerstag))
            $wasfehlt="Bitte geben Sie den Donnerstag ein!";
        if ( empty($Freitag))
            $wasfehlt="Bitte geben Sie den Freitag ein!";
        if ( empty($Samstag))
            $wasfehlt="Bitte geben Sie die Samstag ein!";
        if ( empty ($wasfehlt))
            $allesda=1;
    }

    if ($allesda) {

            include ('dbpass.php');
            // Im Fehlerfalle bewirkt der Klammeraffe, dass die Fehlermeldungen
            // unterdrückt werden. ms_sqlconnect verbindet mit der Datenbank
        @mysql_connect($dbhost, $dbuser, $dbpass);
            // Auswahl der Datenbank
        @$x=mysql_select_db($dbdata);
     
            // Aufbau des SQL-Statements aus den Formularfeldern
        $sql = "INSERT INTO arbeit (Woche, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag) VALUES ('$Woche', '$Montag', '$Dienstag', '$Mittwoch','$Donnerstag', '$Freitag', '$Samstag' )";
        $result = mysql_query($sql);
     
            // Anzeigen des Primaerschluessels des neuen Datensatzes
            echo "neue ID:", mysql_insert_id(), "<br>";
        echo $sql,"<br>";
     
            // MYSQL-Fehlermeldungen ausgeben:
        if(!$result)
            echo "fehler: ",mysql_error(),"<br>";
        else
            echo "Daten wurde erfolgreich in die Datenbank eingetragen!";

    }
    else
    {
    if (!empty($wasfehlt))
        echo $wasfehlt,"<br>";
    // Anzeige des Webformulars
    ?>
    <FORM method="post" action="">
    Woche:
    <INPUT type="text" name="Woche" size="25"><br>
    Montag:
    <INPUT type="text" name="Montag" size="25"><br>
    Dienstag:
    <INPUT type="tex"t name="Dienstag" size="25"><br>
    Mittwoch:
    <INPUT type="text" name="Mittwoch" size="25"><br>
    Donnerstag:
    <INPUT type="text" name="Donnerstag" size="25"><br>
    Freitag:
    <INPUT type="text" name="Freitag" size="25"><br>
    Samstag:
    <INPUT type="text" name="Samstag" size="25"><br><br>
    <INPUT type="submit" value="Eintragen"><br>
    </FORM>
    <?
    }
    ?>

    ich hoffe ihr könnt mir helfen

    besten dank im voraus

  • #2
    Quakenet/#php Tutorial - de - Formulare
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      habe den link gelesen verstehe aber nicht was du mir nun genau damit sagen willst wie schon gesagt abseluter neuling

      Kommentar


      • #4
        Da steht beschrieben, wie man per Formular übergebene Daten im Script korrekt in Empfang nimmt.
        [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

        Kommentar


        • #5
          weiter bis auf das ich nun die variablen übergeben vergessen habe kann ich nichts entdecken

          PHP-Code:
          <html>
          <head><title>Marbeit Eingabe</title></head>
          <body>
          <h1>Arbeitszeit Eingabe</h1>
          <?
          error_reporting (E_ALL);
          // Die Datenbank-Tabelle "arbeit" hat folgende Felder:
          //id:  int(11)    auto_increment, primary
          //Woche:   varchar(50)
          //Montag:  varchar(50)
          //Dienstag:  varchar(50)
          //Mittwoch:  varchar(50)
          //Donnerstag:  varchar(50)
          //Freitag:  varchar(50)
          //Samstag:  varchar(50)

          $wasfehlt="";
          $allesda=0;
          if ( isset($Woche) or isset($Montag) or isset($Dienstag) or isset ($Mittwoch) or isset($Donnerstag) or isset ($Freitag) or isset ($Samstag)) {
              if ( empty($Woche))
                  $wasfehlt="Bitte geben Sie den Woche ein!"; 
              if ( empty($Montag))
                  $wasfehlt="Bitte geben Sie den Montag ein!";
              if ( empty($Dienstag))
                  $wasfehlt="Bitte geben Sie den Dienstag ein!";
              if ( empty($Mittwoch))
                  $wasfehlt="Bitte geben Sie die Mittwoch ein!";
              if ( empty($Donnerstag))
                  $wasfehlt="Bitte geben Sie den Donnerstag ein!";
              if ( empty($Freitag))
                  $wasfehlt="Bitte geben Sie den Freitag ein!";
              if ( empty($Samstag))
                  $wasfehlt="Bitte geben Sie die Samstag ein!";
              if ( empty ($wasfehlt))
                  $allesda=1;
          }

          if ($allesda) {

                  include ('dbpass.php');
                  // Im Fehlerfalle bewirkt der Klammeraffe, dass die Fehlermeldungen
                  // unterdrückt werden. ms_sqlconnect verbindet mit der Datenbank
              @mysql_connect($dbhost, $dbuser, $dbpass);
                  // Auswahl der Datenbank
              @$x=mysql_select_db($dbdata);
              
              
          $Woche= $_POST["Woche"];
          $Montag= $_POST["Montag"];
          $Dienstag= $_POST["Dienstag"];
          $Mitwoch= $_POST["Mittwoch"];
          $Donnerstag= $_POST["Donnerstag"];
          $Freitag= $_POST["Freitag"];
          $Samstag= $_POST["Samstag"];
           
                  // Aufbau des SQL-Statements aus den Formularfeldern
              $sql = "INSERT INTO arbeit (Woche, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag) VALUES ('$Woche', '$Montag', '$Dienstag', '$Mittwoch','$Donnerstag', '$Freitag', '$Samstag')";
              $result = mysql_query($sql);
           
                  // Anzeigen des Primaerschluessels des neuen Datensatzes
                  echo "neue ID:", mysql_insert_id(), "<br>";
              echo $sql,"<br>";
           
                  // MYSQL-Fehlermeldungen ausgeben:
              if(!$result)
                  echo "fehler: ",mysql_error(),"<br>";
              else
                  echo "Daten wurde erfolgreich in die Datenbank eingetragen!";

          }
          else
          {
          if (!empty($wasfehlt))
              echo $wasfehlt,"<br>";
          // Anzeige des Webformulars
          ?>
          <FORM method="post" action="">
          Woche:
          <INPUT type="text" name="Woche" size="25"><br>
          Montag:
          <INPUT type="text" name="Montag" size="25"><br>
          Dienstag:
          <INPUT type="tex"t name="Dienstag" size="25"><br>
          Mittwoch:
          <INPUT type="text" name="Mittwoch" size="25"><br>
          Donnerstag:
          <INPUT type="text" name="Donnerstag" size="25"><br>
          Freitag:
          <INPUT type="text" name="Freitag" size="25"><br>
          Samstag:
          <INPUT type="text" name="Samstag" size="25"><br><br>
          <INPUT type="submit" value="Eintragen"><br>
          </FORM>
          <?
          }
          ?>
          </body>
          </html>

          Kommentar


          • #6
            Jetzt holst du zwar die Werte ab - aber erst nachdem du deine Prüfungen machst ...

            Und das „umkopieren“ in andere Variablen ist Unfug - du kannst direkt mit $_POST arbeiten.
            [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

            Kommentar


            • #7
              Zitat von spaxus Beitrag anzeigen
              PHP-Code:
              <html>
              <head><title>Marbeit Eingabe</title></head>
              <body>
              <h1>Arbeitszeit Eingabe</h1>
              <?
              error_reporting (E_ALL);
              // Die Datenbank-Tabelle "arbeit" hat folgende Felder:
              //id:  int(11)    auto_increment, primary
              //Woche:   varchar(50)
              //Montag:  varchar(50)
              //Dienstag:  varchar(50)
              //Mittwoch:  varchar(50)
              //Donnerstag:  varchar(50)
              //Freitag:  varchar(50)
              //Samstag:  varchar(50)

              $wasfehlt="";
              $allesda=0;
              if ( isset($Woche) or isset($Montag) or isset($Dienstag) or isset ($Mittwoch) or isset($Donnerstag) or isset ($Freitag) or isset ($Samstag)) {
                  if ( empty($Woche))
                      $wasfehlt="Bitte geben Sie den Woche ein!"; 
                  if ( empty($Montag))
                      $wasfehlt="Bitte geben Sie den Montag ein!";
                  if ( empty($Dienstag))
                      $wasfehlt="Bitte geben Sie den Dienstag ein!";
                  if ( empty($Mittwoch))
                      $wasfehlt="Bitte geben Sie die Mittwoch ein!";
                  if ( empty($Donnerstag))
                      $wasfehlt="Bitte geben Sie den Donnerstag ein!";
                  if ( empty($Freitag))
                      $wasfehlt="Bitte geben Sie den Freitag ein!";
                  if ( empty($Samstag))
                      $wasfehlt="Bitte geben Sie die Samstag ein!";
                  if ( empty ($wasfehlt))
                      $allesda=1;
              }
              So kannst du dir die äußere IF Bedingung auch gleich sparen, weil die wird immer true sobald ein Tag/Woche gesetzt ist.

              Kommentar


              • #8
                ich komme einfach nicht weiter in der sache egal was ich auch mache er überträgts nicht in die datenbank

                Kommentar


                • #9
                  Du (bzw. der Programmierer des Scripts) hast dich beim Programmieren auf die auto_globals verlassen... das ist schlecht, weil der jetzige Server die auto_globals deaktiviert hat (auto_globals sorgt dafür, das z.B. POST Werte automatisch in Variablen importiert werden, die den Namen des jeweiligen Formluarsfelds haben). Wenn du dir dein SQL Statement ausgeben lässt, wirst du das auch sehen können.
                  Weiterhin sollte dir bei eingeschaltetem error_reporting ein Haufen Warnmeldungen um die Ohren fliegen, die das Problem nochmal zeigen... bitte mal
                  PHP-Code:
                  error_reporting(-1);
                  ini_set('display_errors'1); 
                  an den Anfang des Scripts.
                  Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                  Kommentar


                  • #10
                    besten dank erst mal

                    ich bekomme auf der eingabe seite folgende meldungen

                    PHP-Code:
                    NoticeUndefined indexWoche in /home/spaxus_de/www/arbeit/marbeit.php on line 17

                    Notice
                    Undefined indexMontag in /home/spaxus_de/www/arbeit/marbeit.php on line 18

                    Notice
                    Undefined indexDienstag in /home/spaxus_de/www/arbeit/marbeit.php on line 19

                    Notice
                    Undefined indexMittwoch in /home/spaxus_de/www/arbeit/marbeit.php on line 20

                    Notice
                    Undefined indexDonnerstag in /home/spaxus_de/www/arbeit/marbeit.php on line 21

                    Notice
                    Undefined indexFreitag in /home/spaxus_de/www/arbeit/marbeit.php on line 22

                    Notice
                    Undefined indexSamstag in /home/spaxus_de/www/arbeit/marbeit.php on line 23 

                    Kommentar


                    • #11
                      Natürlich bekommst du diese Meldungen, wenn du das Script erst mal per GET aufrufst, um das Formular anzeigen zu lassen - dann gibt's nämlich gar keine POST-Parameter.

                      Du musst also erst mal abfragen, ob das Script überhaupt durch Abschicken des Formulars aufgerufen wurde - das kann man bspw. mit isset machen, in dem man schaut, ob der Wert des Submit-Buttons übergeben wurde.


                      Und bitte frage nicht per PN nach Privatsupport, den leisten wir hier nicht.
                      [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                      Kommentar


                      • #12
                        Ich seh grad, in #5 hast du ja schon ein paar Zeilen Code, um die Variablen abzuholen, aber die Reihenfolge stimmt da nicht, du fragst oben schon Variablen ab, die weiter unten erst mit den POST Werten belegt werden - das sagte dir ChrisB aber auch schon.
                        Du musst die Dinge in die richtige Reihenfolge bringen:
                        - Überprüfen ob überhaupt Werte vorhanden sind (wurde das Formulars abgesendet?)
                        - Abholen und Überprüfen der Werte auf Gültigkeit
                        - Arbeiten (eintragen in Datenbank)
                        - Ausgeben
                        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                        Kommentar


                        • #13
                          aktuell siehts jetzt so aus aber weiter bringt mich das alles nicht weil ich gar nicht weis wie die rheienfolge sein muss um das alles zu bewerkstelligen

                          PHP-Code:
                          <html>
                          <head><title>Marbeit Eingabe</title></head>
                          <body>
                          <h1>Arbeitszeit Eingabe</h1>
                          <?
                          error_reporting(-1);
                          ini_set('display_errors', 1);  
                          // Die Datenbank-Tabelle "arbeit" hat folgende Felder:
                          //id:  int(11)    auto_increment, primary
                          //Woche:   varchar(50)
                          //Montag:  varchar(50)
                          //Dienstag:  varchar(50)
                          //Mittwoch:  varchar(50)
                          //Donnerstag:  varchar(50)
                          //Freitag:  varchar(50)
                          //Samstag:  varchar(50)
                          $Woche = $_POST['Woche'];
                          $Montag = $_POST['Montag'];
                          $Dienstag = $_POST['Dienstag'];
                          $Mitwoch = $_POST['Mittwoch'];
                          $Donnerstag = $_POST['Donnerstag'];
                          $Freitag = $_POST['Freitag'];
                          $Samstag = $_POST['Samstag'];


                          $wasfehlt="";
                          $allesda=0;
                          if ( isset($Woche) or isset($Montag) or isset($Dienstag) or isset ($Mittwoch) or isset($Donnerstag) or isset ($Freitag) or isset ($Samstag)) {
                              if ( empty($Woche))
                                  $wasfehlt="Bitte geben Sie den Woche ein!"; 
                              if ( empty($Montag))
                                  $wasfehlt="Bitte geben Sie den Montag ein!";
                              if ( empty($Dienstag))
                                  $wasfehlt="Bitte geben Sie den Dienstag ein!";
                              if ( empty($Mittwoch))
                                  $wasfehlt="Bitte geben Sie die Mittwoch ein!";
                              if ( empty($Donnerstag))
                                  $wasfehlt="Bitte geben Sie den Donnerstag ein!";
                              if ( empty($Freitag))
                                  $wasfehlt="Bitte geben Sie den Freitag ein!";
                              if ( empty($Samstag))
                                  $wasfehlt="Bitte geben Sie die Samstag ein!";
                              if ( empty ($wasfehlt))
                                  $allesda=1;
                          }

                          if ($allesda) {

                                  include ('dbpass.php');
                                  // Im Fehlerfalle bewirkt der Klammeraffe, dass die Fehlermeldungen
                                  // unterdrückt werden. ms_sqlconnect verbindet mit der Datenbank
                              @mysql_connect($dbhost, $dbuser, $dbpass);
                                  // Auswahl der Datenbank
                              @$x=mysql_select_db($dbdata);
                              
                              

                           
                                  // Aufbau des SQL-Statements aus den Formularfeldern
                              $sql = "INSERT INTO arbeit (Woche, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag) VALUES ('$Woche', '$Montag', '$Dienstag', '$Mittwoch','$Donnerstag', '$Freitag', '$Samstag')";
                              $result = mysql_query($sql);
                           
                                  // Anzeigen des Primaerschluessels des neuen Datensatzes
                                  echo "neue ID:", mysql_insert_id(), "<br>";
                              echo $sql,"<br>";
                           
                                  // MYSQL-Fehlermeldungen ausgeben:
                              if(!$result)
                                  echo "fehler: ",mysql_error(),"<br>";
                              else
                                  echo "Daten wurde erfolgreich in die Datenbank eingetragen!";

                          }
                          else
                          {
                          if (!empty($wasfehlt))
                              echo $wasfehlt,"<br>";
                          // Anzeige des Webformulars
                          ?>
                          <FORM method="post" action="">
                          Woche:
                          <INPUT type="text" name="Woche" size="25"><br>
                          Montag:
                          <INPUT type="text" name="Montag" size="25"><br>
                          Dienstag:
                          <INPUT type="tex"t name="Dienstag" size="25"><br>
                          Mittwoch:
                          <INPUT type="text" name="Mittwoch" size="25"><br>
                          Donnerstag:
                          <INPUT type="text" name="Donnerstag" size="25"><br>
                          Freitag:
                          <INPUT type="text" name="Freitag" size="25"><br>
                          Samstag:
                          <INPUT type="text" name="Samstag" size="25"><br><br>
                          <INPUT type="submit" value="Eintragen"><br>
                          </FORM>
                          <?
                          }
                          ?>
                          </body>
                          </html>

                          Kommentar


                          • #14
                            ok ich glaube ich habe es langsam verstanden und werde nun mal einiges umstellen melde mich später noch mal

                            Kommentar


                            • #15
                              ich gebs bald auf habe es umgeschrieben nun aber es speichert immer noch nichts in der datenbank wer kann mir nun sagen wo der fehler ist bitte

                              PHP-Code:
                              <?php
                               error_reporting
                              (-1);
                              ini_set('display_errors'1); 
                                  
                                  
                              $datenbank_host 'localhost';
                                  
                              $datenbank_user 'xxx';
                                  
                              $datenbank_passwort 'xxx';
                                  
                              $datenbank_name 'xxx';
                                  
                                  if (!isset(
                              $_POST['senden'])) $_POST['senden'] = '';
                                  if (!isset(
                              $_POST['Woche'])) $_POST['Woche'] = '';
                                  if (!isset(
                              $_POST['Montag'])) $_POST['Montag'] = '';
                                  if (!isset(
                              $_POST['Dienstag'])) $_POST['Dienstag'] = '';
                                  if (!isset(
                              $_POST['Mittwoche'])) $_POST['Mittwoch'] = '';
                                  if (!isset(
                              $_POST['Donnerstag'])) $_POST['Donnerstag'] = '';
                                  if (!isset(
                              $_POST['Freitag'])) $_POST['Freitag'] = '';
                                  if (!isset(
                              $_POST['Samstag'])) $_POST['Samstag'] = '';
                                  if (!isset(
                              $_POST['vorname'])) $_POST['vorname'] = '';
                                  
                                  
                                  if (
                              $_POST['senden'] != '' AND $_POST['Woche'] != '' AND $_POST['Montag'] != '' AND 
                                  
                              $_POST['Dienstag'] != '' AND $_POST['Mittwoch'] != '' AND $_POST['Donnerstag'] != '' AND 
                                  
                              $_POST['Freitag'] != '' AND $_POST['Samstag'] != ''
                                  
                                  
                                  {
                                      
                                      
                              $link = @mysql_connect($datenbank_host,
                                          
                              $datenbank_user$datenbank_passwort);
                                      
                                      if (!
                              $link) {
                                          die(
                              'keine Verbindung möglich: ' .
                                              
                              mysql_error());
                                      }
                                      
                                      
                              $db_selected =
                                          @
                              mysql_select_db($datenbank_name$link);
                                     
                                      if (!
                              $db_selected) {
                                          die (
                              'Kann '.$datenbank_name.' nicht
                                              benutzen : ' 
                              mysql_error());
                                      }
                                      
                                      
                              $sql_insert "INSERT INTO `arbeit`
                                          (`Woche`,`Montag`,`Dienstag`,`Mittwoch`,`Donnerstag`,`Freitag``Samstag`)
                                          VALUES
                                          ('"
                              .mysql_escape_string($_POST['Woche'])."', 
                                                 '"
                              .mysql_escape_string($_POST['Montag'])."',
                                                 '"
                              .mysql_escape_string($_POST['Dienstag'])."',
                                                 '"
                              .mysql_escape_string($_POST['Mittwoch'])."',
                                                 '"
                              .mysql_escape_string($_POST['Donnerstag'])."',
                                                 '"
                              .mysql_escape_string($_POST['Freitag'])."',
                                                 '"
                              .mysql_escape_string($_POST['Samstag'])."');";
                                     
                                      if (@
                              mysql_query($sql_insert$link) != false) {
                                         
                                          echo 
                              'Der Eintrag wurde gespeichert!';
                                          
                              $_POST['Woche'] = '';
                                          
                              $_POST['Montag'] = '';
                                          
                              $_POST['Dienstag'] = '';
                                          
                              $_POST['Mittwoch'] = '';
                                          
                              $_POST['Donnerstag'] = '';
                                          
                              $_POST['Freitag'] = '';
                                          
                              $_POST['Samstag'] = '';
                                          
                                      } else {
                                          
                                          echo 
                              'Der Eintrag wurde nicht
                                              gespeichert!'
                              ;
                                      }
                                      
                                      @
                              mysql_close($link);
                                  }
                                  
                                  echo 
                              '<form
                                      action="'
                              .htmlspecialchars($_SERVER['PHP_SELF']).'" method="post">';
                                  echo 
                              ' Woche: <input type="text" name="Woche" value="'.htmlspecialchars($_POST['Woche']).' "/><br/>';
                                  echo 
                              ' Montag: <input type="text" name="Montag" value="'.htmlspecialchars($_POST['Montag']).'"/> <br/><br/>';
                                  echo 
                              ' Dienstag: <input type="text" name="Dienstag" value="'.htmlspecialchars($_POST['Dienstag']).' "/><br/>';
                                  echo 
                              ' Mittwoch: <input type="text" name="Mittwoch" value="'.htmlspecialchars($_POST['Mittwoch']).'"/> <br/><br/>';
                                  echo 
                              ' Donnerstag: <input type="text" name="Donnerstag" value="'.htmlspecialchars($_POST['Donnerstag']).' "/><br/>';
                                  echo 
                              ' Freitag: <input type="text" name="Freitag" value="'.htmlspecialchars($_POST['Freitag']).'"/> <br/><br/>';
                                  echo 
                              ' Samstag: <input type="text" name="Samstag" value="'.htmlspecialchars($_POST['Samstag']).' "/><br/>';
                                  echo 
                              ' <input type="submit" name="senden" value="absenden"/>';
                                  echo 
                              '</form>';
                              ?>

                              Kommentar

                              Lädt...
                              X