Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten werden nicht in die Datenbank eingetragen

Einklappen

Neue Werbung 2019

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

  • Daten werden nicht in die Datenbank eingetragen

    ch habe folgendes Problem: Ich bin grad an einem Script zur Usererfassung dran und nebenbei hab ich noch 2 Sicherheitsabfragen drin. Einmal wird überprüft ob das Passwort 2 mal richtig eingegeben wurde und einmal wird überprüft ob bestimmte Felder nicht leer sind. Gerade eben war es noch so, dass die Bedingungen nicht richtig ausgeführt wurden. Nun läuft es soweit. Allerdigs werden die Daten nun nicht in die Datenbank eingetragen. Wenn ich die Bedingungen rausnehme, funktioniert es. Hier ist der Code Teil:

    PHP-Code:
    <?php
    <? if($senden) {

    //Sicherheitsabfragen

    if(empty($nick) || empty($name) || empty($passwd) || empty($email)) { echo "F&uuml;lle bitte alle Felder aus.
    "
    ; }
    if(
    $passwd != $passwd2) { echo "Fehler in der Passworteingabe. Bitte gebe dein Passwort erneut ein.
    "
    ; }

    $snick=$_POST['nick']; $semail=$_POST['email']; $sname=$_POST['name']; $sicq=$_POST['icq']; $smsn=$_POST['msn']; //s-Variablen werden mit Werten
    $syim=$_POST['yim']; $saim=$_POST['aim']; $shp=$_POST['hp']; $sherkunft=$_POST['herkunft']; //aus input-Feldern gefüllt.

    //Sicherheitsabfragen

    } else {

    // Eintrag in DB speichern
    if ($action=="save") {
    $res mysql_query("INSERT INTO $table (nick,passwd,email,name,icq,msn,yim,aim,homepage,herkunft)
    VALUES ('
    $nick','$passwd','$email','$name','$icq','$msn','$yim','$aim','$hp','$herkunft')") or die(mysql_error());
    }

    if (
    $res) echo "Daten erfolgreich gespeichert";

    $snick=$semail=$sname=$sicq=$smsn=$syim=$saim=$shp=$sherkunft=""//s-Variablen werden geleert
    }
    ?>

    ?>

  • #2
    PHP-Code:
    <?php
    if(empty($nick) || empty($name) || empty($passwd) || empty($email)) { echo "F&uuml;lle bitte alle Felder aus.
    "
    ; }
    if(
    $passwd != $passwd2) { echo "Fehler in der Passworteingabe. Bitte gebe dein Passwort erneut ein.
    "
    ; }
    ?>
    Hört sich doch deftich verdächtich nach register_globals an.
    Einmal verwendest du $_POST, des andre mal wieder nicht im Script - such dir eine Variante aus, und zwar die mit $_POST

    Kommentar


    • #3
      Naja das sind Werte aus den input Feldern. Auch wenn ich es mit beispielsweise $_POST['email'] mache, kommt das gleiche bei raus. Die Daten werden einfach nicht in die Datenbank übertragen.
      mfg
      picco

      Kommentar


      • #4
        Was heißt nicht in die Datenbank übertragen? Wird etwas in die DB eingetragen, aber leere Werte?
        Lass dir doch einfach mal alle relevanten Variablen mit echo / print_r() ausgeben.. Setz dazu ein error_reporting(E_ALL) an den ANfang deines Scripts..

        Kommentar


        • #5
          Ich hab nun die Variablen nick, passwd, name und email mit print_r() ausgeben lassen. Hinter dem Wert steht dann immer eine 1. Wenn ich alle Fehler ausgeben lasse, kommt diese Meldung:

          Notice: Undefined variable: senden in C:\apachefriends\xampp\htdocs\dev\bgame\user.php on line 20

          Notice: Undefined variable: action in C:\apachefriends\xampp\htdocs\dev\bgame\user.php on line 35

          Notice: Undefined variable: res in C:\apachefriends\xampp\htdocs\dev\bgame\user.php on line 40

          Notice: Undefined variable: nick in C:\apachefriends\xampp\htdocs\dev\bgame\user.php on line 45
          1
          Notice: Undefined variable: passwd in C:\apachefriends\xampp\htdocs\dev\bgame\user.php on line 45
          1
          Notice: Undefined variable: name in C:\apachefriends\xampp\htdocs\dev\bgame\user.php on line 45
          1
          Notice: Undefined variable: email in C:\apachefriends\xampp\htdocs\dev\bgame\user.php on line 45
          1
          mfg
          picco

          Kommentar


          • #6
            wie schon gesagt: register_globals

            benutze $_POST[]!!!
            z.b:
            PHP-Code:
            <?php
            if($_POST['senden']){.......}
            ?>
            stego87

            Kommentar


            • #7
              Nun auch da liegt der Fehler nicht. Die Daten aus den Variablen werden nicht in die Datenbank übertragen.
              mfg
              picco

              Kommentar


              • #8
                sry...aber irgendwie macht dein skript auch keinen sinn

                oder kannst den mal erklären??

                Kommentar


                • #9
                  Wenn der Button "Senden" gedrückt wird, kommen die Sicherheitsabfragen. Wenn bestimmte Felder leer sind, kommt eine Meldung. Wenn die Passwortbestätigung nicht gleich dem Passwort ist, kommt ebenfalls eine Meldung. Dann wird alles in die Datenbank eingetragen. Zumindest sollte es so sein...
                  mfg
                  picco

                  Kommentar


                  • #10
                    ne...dann stimmt dein skripzt net

                    Kommentar


                    • #11
                      versuch mal so:
                      PHP-Code:
                      <?php
                      if($_POST['senden']) { 

                      ############################## Sicherheitsabfragen ################################
                      $ok 1;
                      if(empty(
                      $_POST['nick']) || empty($_POST['name']) || empty($_POST['passwd']) || empty($_POST['email'])){ 
                          echo 
                      "F&uuml;lle bitte alle Felder aus.
                      "

                          
                      $ok 0;

                      if(
                      $_POST['passwd'] != $_POST['passwd2']){ 
                          echo 
                      "Fehler in der Passworteingabe. Bitte gebe dein Passwort erneut ein.
                      "

                          
                      $ok 0;


                      ############################## \Sicherheitsabfragen ################################

                      if($ok){
                          
                      $snick=$_POST['nick']; 
                          
                      $semail=$_POST['email']; 
                          
                      $sname=$_POST['name']; 
                          
                      $sicq=$_POST['icq']; 
                          
                      $smsn=$_POST['msn']; //s-Variablen werden mit Werten 
                          
                      $syim=$_POST['yim']; 
                          
                      $saim=$_POST['aim']; 
                          
                      $shp=$_POST['hp']; 
                          
                      $sherkunft=$_POST['herkunft']; //aus input-Feldern gefüllt. 

                          // Eintrag in DB speichern 
                          
                      $sql ="INSERT INTO $table (nick,passwd,email,name,icq,msn,yim,aim,homepage,herkunft) VALUES ('$nick','$passwd','$email','$name','$icq','$msn','$yim','$aim','$hp','$herkunft')"
                          
                      $res mysql_query($sql) or die(mysql_error()); 
                      }
                      if (
                      $res) echo "Daten erfolgreich gespeichert"
                          
                      $snick=$semail=$sname=$sicq=$smsn=$syim=$saim=$shp=$sherkunft=""//s-Variablen werden geleert (wiso machst das ??)
                      }
                      ?>
                      -->ungetestet!

                      stego87

                      Kommentar


                      • #12
                        Nun in meinem Gästebuch hab ich das gleiche. Dort habe ich lediglich die Überprüfung ob bestimmte Felder leer sind und da funktioniert es einwandfrei.
                        mfg
                        picco

                        Kommentar


                        • #13
                          @stego Danke für die Hilfe. Ansich funktioniert deine Änderung ohne Probleme. Allerdings werden den s-Variablen keine Werte zugewisen. Warum sie am Ende geleert werden? Nun die s-Variablen werden in den input-Feldern als values ausgegeben, wenn man ein bestimmtes Feld nicht ausgefüllt hat. Sonst müsste man alles nochmal neu eintragen. Und damit es am Ende nicht in den Feldern drin bleibt, werden diese wieder gelöscht.
                          mfg
                          picco

                          Kommentar


                          • #14
                            Ansich funktioniert deine Änderung ohne Probleme. Allerdings werden den s-Variablen keine Werte zugewisen.
                            Das ist seltsam. Mach mal folgendes:
                            PHP-Code:
                            <?php
                            if($ok){ 
                                    echo 
                            '<pre>';
                                    
                            print_r($_POST);
                                    echo 
                            '</pre>';
                               
                                    
                            // ...
                            }
                            ?>

                            Kommentar


                            • #15
                              Das hier bekomme ich als Ausgabe

                              Array
                              (
                              [action] => save
                              [nick] => test
                              [name] => test
                              [passwd] => test
                              [passwd2] => test
                              [email] => test
                              [icq] =>
                              [msn] =>
                              [yim] =>
                              [aim] =>
                              [hp] =>
                              [herkunft] =>
                              [senden] => :: Senden
                              )
                              mfg
                              picco

                              Kommentar

                              Lädt...
                              X