[PHP] Daten in Registrierungsformular werden nicht in die Datenbank eingetragen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von naitsgang, 16. Oktober 2012 .

  1. 16. Oktober 2012
    Daten in Registrierungsformular werden nicht in die Datenbank eingetragen

    Moin moin,

    Also irgendwie habe ich einen Denkfehler drin. Per hand lässt sich das ganze wunderbar mit dem mysql Befehl in die DB eintragen, aber über PHP haut das ganze nicht hin :/
    Weiß jemand wo ich da einen Fehler reingehauen habe? Nach mehrmaligem Überprüfen kann ich einfach nichts finden :/

    Hier schonmal der Code:

    PHP:
    <head><style type="text/css">
    <?php  include 'styles.css' ; ?>
    </style>
    </head>
    <body>

    <?php 

    $host 
    "localhost" ;
    $root  "root" ;
    $pass  "testpass" ;
    $daba  "phpversuche" ;
    if(!
    mysql_connect ( $host , $root , $pass , $daba )){
        echo 
    'Keine Verbindung zu host' ;
    }

    if(isset(
    $_GET [ 'do' ])){
      switch(
    $_GET [ 'do' ]){
          
          case 
    "register" :

             if(isset(
    $_POST [ 'username' ])){
                 
    $user  mysql_real_escape_string ( htmlspecialchars ( $_POST [ 'username' ]));
             if (
    strlen ( $user ) >=  &&  strlen ( $user ) <=  20 ){
                 
    $user_check  true ;
             }else{
    echo 
    '<b>Du musst einen Benutzernamen angeben, der zwischen 2 und 20 Zeichen lang ist ;)</b>' ;
             }
                 
      }else{
    echo 
    '<b>Du musst einen Benutzernamen angeben!</b>' ;
      }
      
      if(isset(
    $_POST [ 'password' ])){
          
    $password  $_POST [ 'password' ];
          if(
    strlen ( $_POST [ 'password' ]) >=  4 ){
              
    $password  mysql_real_escape_string ( htmlspecialchars ( md5 ( $_POST [ 'password' ] .  'extrastring' )));
              
    $password_check  true ;
          }else{
              echo 
    '<b>Dein Passwort muss mindestens 5 Zeichen lang sein!</b>' ;
          }
          }else{
              echo 
    '<b>Du hast noch kein Passwort angegeben!</b>' ;
          }
          
          if(isset(
    $_POST [ 'mail' ])){
              
    $mail  mysql_real_escape_string ( htmlspecialchars ( $_POST [ 'mail' ]));
       }else{
               
    $mail  '</b>Keine Email angegeben!</b>' ;
       }
       
       if(
    $password_check  ==  true  &&  $user_check  ==  true ){
               
    $insert  "INSERT INTO user(name,passwort,Email) VALUES(' $user ',' $password ', $mail )" ;       
               
    $mysql_input  mysql_query ( $insert );
                        
               if(
    $mysql_input  ==  true ) {
                   echo 
    '<b>Du bist nun Registriert! <a href="user.php?do=login">Einloggen!</a></b>' ;
               }else{
                   echo 
    '<b>Registrieren fehlgeschlagen!</b>' ;
                   echo 
    '</br>'  $insert ;
               }
       }
      
      
          
          
          
            break;
            
        
        
        case 
    "login" :
            
            break;
     }    
    } else {
    ?>
    <form method="POST" action="user.php?do=register">
    <table>
    <tr> 
        <td><b>Nutzername:</b></td>
        <td><input style="width:100%;" type="text" name="username" /></td>
    </tr>

    <tr>
        <td><b>Passwort:</b></td>
        <td><input style="width:100%;" type="password" name="password" /> </td>
    </tr>


    <tr>
        <td><b>Email (optional):</b></td>
        <td><input style="width:100%;" type="text" name="mail"/></td>
    </tr>
    <tr>
        <td></td>
        <td><div align="right"><button type="submit" class="button" value="register">Registrieren!</button></div></td>
    </tr>
    </table>
    </form>
    </body>
    <?php 
    }

    ?>
    Ich bin für jede Hilfe dankbar!


    Und sorry für den Programmierstil
     
  2. 16. Oktober 2012
    Zuletzt bearbeitet: 16. Oktober 2012
    AW: Daten in Registrierungsformular werden nicht in die Datenbank eingetragen

    mysql_error sollte Abhilfe schaffen.

    Würde dir zudem empfehlen, mit error_reporting(E_ALL); zu arbeiten, dann schreibst du automatisch besseren Code.

    PHP:
    $mysql_input  mysql_query ( $insert );
    if(
    $mysql_input  ==  true ) {
    // ersetzen durch
    if ( mysql_query ( $insert )) {
    so macht man aus 2 Zeilen eine

    Wenn du korrekt einrückst, erkennst du außerdem Klammerfehler o.ä. schneller
    PHP:
           }else{ 
              echo 
    '<b>Dein Passwort muss mindestens 5 Zeichen lang sein!</b>'
          } 
          }else{ 
              echo 
    '<b>Du hast noch kein Passwort angegeben!</b>'
          }
    // =>
          
    }else{ 
              echo 
    '<b>Dein Passwort muss mindestens 5 Zeichen lang sein!</b>'
          } 
       }else{ 
              echo 
    '<b>Du hast noch kein Passwort angegeben!</b>'
       }
     
  3. 16. Oktober 2012
    Zuletzt bearbeitet: 16. Oktober 2012
    AW: Daten in Registrierungsformular werden nicht in die Datenbank eingetragen

    Danke

    Funktioniert nun. Kann es sein, dass ich vorher dummerweise vergessen habe die Datenbank auszuwählen mit mysql_db_select? ^^

    lg
     
  4. 16. Oktober 2012
    AW: Daten in Registrierungsformular werden nicht in die Datenbank eingetragen

    Ich nehme mal an, dass in der Variable $daba der Datenbankname steht. Du uebergibst diesen an die Funktion mysql_connect, was falsch ist. Stattdessen musst du hierfuer (wie du schon richtig erkannt hast) die Funktion msql_select_db nehmen.
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.