Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit register script

Einklappen

Neue Werbung 2019

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

  • Problem mit register script

    Hallo php.de leute ich habe erst vor kurzem angefangen mich mit php und SQL zu beschäftigen und bin dabei mir schritt für schritt eine kleine Website zu bauen nun.. habe ich ein problem mit meiner register.php da er anscheinend keinen user anlegen kann

    PHP-Code:
    <?php

        error_reporting
    (-1);
        
    ini_set('display_errors',true);
        
    session_start();

      
    $submit strip_tags($_POST['submit']);
      
    $nickname strip_tags($_POST['name']);
      
    $firstName strip_tags($_POST['firstName']);
      
    $lastName strip_tags($_POST['lastName']);
      
    $password strip_tags($_POST['pwd']);
      
    $password2 strip_tags($_POST['pwd2']);
      
    $date date("Y-m-d");
       
    $connectionid  mysql_connect ("localhost""root""");
    if (!
    mysql_select_db ("Sba_DB"$connectionid))
    {
      die (
    "Keine Verbindung zur Datenbank");
    }
     if(
    $submit){
         
    //chekc for existance
         
    if($nickname&&$firstName&&$lastName&&$password&&$password2){

         
    //check passwords
         
    if($password==$password2){


          
    //check char length of names
            
    if(strlen($nickname)<25 && strlen($firstName)<25){
                   
    //hohle letzte Id aus der Datenbank

                   
    $getId "SELECT Id FROM benutzername ORDER BY etid DESC LIMIT 1";

                   
    $Id mysql_query ($getId) +1;
        
    // SQL-Anweisung erstellen
                    
    $sql "INSERT INTO
                    benutzerdaten (Id, Vorname, Nachname, Nickname, Kennwort, Punkte)
                     VALUES ('"
    .$Id."',
                    '"
    .$firstName."',
                    '"
    .$lastName."',
                    '"
    .$nickname."',
                    '"
    .md5($password)."',
                    '"
    .$Id."',)";

                    
    mysql_query ($sql);
                    
    //echo"$Id";

                     
    if (mysql_affected_rows ($connectionid) > 0)
                     {
                     echo 
    "Benutzer erfolgreich angelegt.<br>\n";
                     }
                     else{
                     echo 
    "Fehler beim Anlegen des Benutzers.<br>\n";
                     }
            }

         }
         else{
            echo 
    "Deine Passw&ouml;rter stimmer nicht &uuml;berein";
             }

        }
         else{
            echo 
    "Bitte alle Felder ausf&uuml;llen";
         }

     }
    ?>
    hier erhalte ich, wenn ich alle felder im formular eingebe die ausgabe :
    "Fehler beim Anlegen des Benutzers."
    was ist hier falsch ??? bitte helft mir !!! danke


  • #2
    Was hast Du denn schon versucht, um das Problem zu analysieren?
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      hi nunja ich habe halt schon einiges versucht z.b per
      PHP-Code:
      error_reporting(-1);
      ini_set('display_errors',true); 
      alle sytax fehler ausgemerzt
      da vorher nicht mal irgendwas ausgegeben wurde.
      nun ich frage mich vor allem was in folgenen Zeilen genau passiert:

      PHP-Code:
       if (mysql_affected_rows ($connectionid) > 0)
                       {
                       echo 
      "Benutzer erfolgreich angelegt.<br>\n";
                       } 
      es muss ja false liefern aber wann und warum ??

      Kommentar


      • #4
        Guckst du hier: PHP: mysql_affected_rows - Manual.
        http://hallophp.de

        Kommentar


        • #5
          Die ID selbst zu generieren ist auch keine gute Idee. Selbst wenn der entspr. Code richtig wäre (, was er nicht ist).
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            also prüft affected_rows nur, ob und wieviele Reihen verändert wurden, was bei mir ja anscheinend nicht der fall ist, also kann es sein weil ich die Id manuell vergeben will ? und wie macht mann das automatisch ?_?

            Kommentar


            • #7
              lass mich das für dich Googlen
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                So jetzt funktionierts danke fürs googeln ^^
                habt ihr vielleicht noch verbesserungsvorschläge ?
                PHP-Code:
                <?php

                    error_reporting
                (-1);
                    
                ini_set('display_errors',true);
                    
                session_start();

                  
                $submit strip_tags($_POST['submit']);
                  
                $nickname strip_tags($_POST['name']);
                  
                $firstName strip_tags($_POST['firstName']);
                  
                $lastName strip_tags($_POST['lastName']);
                  
                $password strip_tags($_POST['pwd']);
                  
                $password2 strip_tags($_POST['pwd2']);
                  
                $date date("Y-m-d");
                   
                $connectionid  mysql_connect ("localhost""root""");
                if (!
                mysql_select_db ("sba_db"$connectionid))
                {
                  die (
                "Keine Verbindung zur Datenbank");
                }
                 if(
                $submit){
                     
                //chekc for existance
                     
                if($nickname&&$firstName&&$lastName&&$password&&$password2){

                     
                //check passwords
                     
                if($password==$password2){


                      
                //check char length of names
                        
                if(strlen($nickname)<25 && strlen($firstName)<25){
                               
                //hohle letzte Id aus der Datenbank

                    // SQL-Anweisung erstellen
                                
                $sql "INSERT INTO
                                benutzerdaten (Vorname, Nachname, Nickname, Passwort)
                                 VALUES ('"
                .$firstName."',
                                '"
                .$lastName."',
                                '"
                .$nickname."',
                                '"
                .md5($password)."')";

                                
                mysql_query ($sql);

                                 if (
                mysql_affected_rows ($connectionid) > 0)
                                 {
                                 echo 
                "Benutzer erfolgreich angelegt.<br>\n";
                                 }
                                 else{
                                 echo 
                "Fehler beim Anlegen des Benutzers.<br>\n";
                                 }
                        }

                     }
                     else{
                        echo 
                "Deine Passw&ouml;rter stimmer nicht &uuml;berein";
                         }

                    }
                     else{
                        echo 
                "Bitte alle Felder ausf&uuml;llen";
                     }

                 }
                ?>

                Kommentar


                • #9
                  strip_tags() schützt dich nicht vor SQL Injection, daher Strings für die Datenbank mit mysql_real_escape_string() bearbeiten.
                  Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                  Kommentar

                  Lädt...
                  X