Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem bei meiner User-Registrierung mit PHP und MySQL

Einklappen

Neue Werbung 2019

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

  • Problem bei meiner User-Registrierung mit PHP und MySQL

    Guten Abend PHP.DE-Forum,

    Ich habe ein kleines Problem und schlage mich nun schon seit längerer Zeit mit diesem Problem rum.

    Und zwar habe ich eine Web-Site mit Log-In und Registrierung allerdings funktioniert die Registrierung nicht ordnungsgemäß.

    Wen ich nichts eingebe kommt die Meldung, was auch soweit richtig ist ich solle alle Daten eintragen "Bitte fülle alle Felder aus".

    Allerdings kommt diese Meldung auch wen ich alles eingegeben habe und ich werde nicht registriert.

    Ich hänge einfach mal eine Zip-Datei mit meinen gesamten Dateien an.

    Ich möchte mich jetzt schon einmal bedanken

    Mit freundlichen Grüßen
    D-Stroy


    Der PHP-Code lautet:

    PHP-Code:
        # php register
                    
                        
    $user strtolower($_POST["user"]);
                                    
    $pw md5($_POST["pw"]);
                                    
    $pw2 md5($_POST["pw2"]);
                                    
                                    
    $reg false;
                                    
    $errors = array();
                                    
                                        
                                    
                                    if (
    $_POST['user'] == "" OR $_POST['email'] == "" OR $_POST['pw'] == "" OR $_POST['pw2'] ) {
                                        
    # Fehler, nicht alle Felder ausgefüllt
                                        
    $errors "Bitte fülle alle Felder aus";
                                    } else {
                                        if(
    $pw != $pw2) {
                                            echo 
    "Deine Passwörter stimmen nicht überein. Bitte wiederhole deine Eingabe....<a href=\"register.php\">zurück</a>";
                                        } else {
                                                
    $verbindung mysql_connect("localhost""root""ffrys7""db_marcel")
                                                or die (
    "Fehler im System");

                                                
    mysql_select_db("db_marcel")
                                                or die (
    "Verbidung zur Datenbank war nicht möglich...");
                                                
                                                
    $control 0;        
                                                
    $abfrage "SELECT username FROM user WHERE username = '".$user."'";
                                                
    $ergebnis mysql_query($abfrage);
                                                while(
    $row mysql_fetch_object($ergebnis))
                                                {
                                                    
    $control++;
                                                }
                                                if(
    $control != 0) {
                                                    echo 
    "Bitte füglle alle Felder aus :)<a href=\"index.php\">zurück</a>";
                                                } else {
                                            {    
    $eintrag "INSERT INTO user
                                                (email, username, password)
                                                    
                                                VALUES
                                                ('"
    .$user."', '".$pw."')";

                                                
    $eintrag mysql_query($eintrag);
                                                
                                                
    $reg true;
                                                }
                                                
                                                if(
    $eintrag) {
                                                    echo 
    "Vielen Dank. Du hast dich nun registriert...<a href=\"index.php\">Jetzt anmelden</a>";
                                                } else {
                                                    echo 
    "Fehler im System. Bitte versuche es später noch einmal...";
                                                }
                                        
                                            
                                        }
                                    }
                                        
                                                }
                                        
                                    echo 
    "Bitte fülle alle Felder aus";
                                    
                            
                        
                        break;
                    default:
                        
    # Fehler
                
    }
        }
        } 


  • #2
    Dieser SQL-Befehl dürfte nicht funktionieren.

    PHP-Code:
    $eintrag "INSERT INTO user (email, username, password) VALUES ('".$user."', '".$pw."')"
    Dort fehlt das erste Feld mit der E-Mail-Adresse. Ändere dies in:

    PHP-Code:
    $email $_POST['email'];
    $eintrag "INSERT INTO user (email, username, password) VALUES ('".$email."', '".$user."', '".$pw."')"
    Deine Eingaben solltest du allerdings noch etwas genauer prüfen um evtl. SQL-Injections zu verhindern.

    Gruß S. Brosch

    Kommentar


    • #3
      mysql_* ist veraltet, bitte auf mysqli_* oder PDO umsteigen
      - Laravel

      Kommentar


      • #4
        Zitat von sbrosch Beitrag anzeigen
        Dieser SQL-Befehl dürfte nicht funktionieren.

        PHP-Code:
        $eintrag "INSERT INTO user (email, username, password) VALUES ('".$user."', '".$pw."')"
        Dort fehlt das erste Feld mit der E-Mail-Adresse. Ändere dies in:

        PHP-Code:
        $email $_POST['email'];
        $eintrag "INSERT INTO user (email, username, password) VALUES ('".$email."', '".$user."', '".$pw."')"
        Deine Eingaben solltest du allerdings noch etwas genauer prüfen um evtl. SQL-Injections zu verhindern.

        Gruß S. Brosch



        Leider bleibt der Fehler Ich solle alle Felder ausfüllen weiterhin bestehen

        Kommentar


        • #5
          Zitat von tera3yte Beitrag anzeigen
          mysql_* ist veraltet, bitte auf mysqli_* oder PDO umsteigen

          Ich muss mich für die Arbeit mit MySQL auseinandersetzen und mich halt mit genau dieser Seite beschäftigen, allerdings finde ich meinen Fehler nicht, deshalb würde ich mich freuen wen ihr mir trotzdem helfen könntet, auch wen es veraltet ist

          Kommentar


          • #6
            Diese Zeile
            PHP-Code:
            echo "Bitte fülle alle Felder aus"
            ist im case "register" auch so gesetzt, dass Sie immer ausgegeben wird.
            Es ist schon alles gesagt. Nur noch nicht von allen.

            Kommentar


            • #7
              Zitat von drsoong Beitrag anzeigen
              Diese Zeile
              PHP-Code:
              echo "Bitte fülle alle Felder aus"
              ist im case "register" auch so gesetzt, dass Sie immer ausgegeben wird.
              Was muss ich den ansonsten schreiben?

              Kommentar


              • #8
                Zitat von D-STROY Beitrag anzeigen
                Was muss ich den ansonsten schreiben?
                Vor allem alles um.

                Die älteste der drei mysql-Erweiterungen ist veraltet (mysql_*-Funktionen, nicht die MySQL-Datenbank) und wird in den kommenden Versionen aus PHP entfernt. Aktuell wirft sie schon E_DEPRECATED-Fehler bei einer Verbindung zur Datenbank. Des Weiteren stehen dir sehr viele tolle Features von mysql mit diesen Funktionen nicht zur Verfügung! Weiterführende Links:
                Choosing an API
                Warum man mysql* generell nicht (mehr) nutzen sollte.
                Wie man von mysql* auf PDO umsteigt

                Zudem sieht dein Code sehr unsicher aus:
                Wissenswertes zum Thema SQL-Injection

                MD5 sollte auf keinen Fall als Mittel zur Passwortsicherheit verwendet werden. Da kannst du das Passwort fast gleich plaintext in die DB schreiben: http://php.net/manual/en/faq.passwor...words.fasthash
                Standards - Best Practices - AwesomePHP - Guideline für WebApps

                Kommentar


                • #9
                  Es soll erstmal nur funktionieren nicht mehr. Ich glaub nicht einmal das die Seite wirklich online kommt.
                  Ich soll nicht mit irgend einer anderen Sprache arbeiten ich soll erstmal nur mit MYSQL arbeiten. Könnt ihr mir nicht ausnahmensweise mal nur in dieser Richtung helfen und nicht mit Sichjerheitslücken oderso

                  Kommentar


                  • #10
                    Mach es doch einfach gleich richtig. Und beschäftige dich etwas mit den Ratschlägen, die du bekommst. Es schreibt niemand, dass du etwas anderes als MySQL als Datenbank oder SQL als Sprache verwenden sollst.

                    Es geht darum, wie du via PHP auf deine MySQL-Dankenbank zugreifst. Funktionen wie mysql_connect, mysql_query oder mysql_fetch_assoc gehören zur veralteten ext_mysql-Lib. Von der solltest du die Finger lassen. Genau so, wie du Passwörter besser nicht mit MD5 hash'st.
                    Standards - Best Practices - AwesomePHP - Guideline für WebApps

                    Kommentar

                    Lädt...
                    X