Registrierungs Skript klappt nicht

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

  • Registrierungs Skript klappt nicht

    Hey liebe Community,
    ich habe ein Problem mit der Registrierung. Für ein Informatikprojekt sollte ich die langsam mal fertig bekommen aber ich hab mir schon etliche vorlagen und tutorials angesehen und jetzt habe ich einen komplett alleine geschrieben weil die anderen nichts gebracht haben. Eine Datenbank habe ich auch erstellt mit den passenden feldern. Ich poste mal den Skript. Ich hoffe ihr könnt mir helfen
    LG Recno
    Angehängte Dateien

  • #2
    Sorry, aber wir sind hier nicht dazu da, deinen Hausaufgaben zu machen. Also poste bitte relevaten Code mit einer sauberen Fehlerbeschreibung.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Das sind nicht meine Hausaufgaben und ich weiß nicht was ich für Fehler da drin habe. Ich hab selber nach Fehlern gesucht und habe keine gefunden, ich weiß auch nicht, ob ich vielleicht einen Befehl etc. vergessen habe deswegen frage ich ja ob etwas an meinem Skript fehlt.

      Kommentar


      • #4
        Zitat von Recno Beitrag anzeigen
        ...deswegen frage ich ja ob etwas an meinem Skript fehlt.
        Dann sag das doch gleich. Ich schaue es mir mal heute Abend an.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          ok danke ;D ich dachte das wäre eindeutig ich will ja keinen skript einfach so kopieren ^^

          Kommentar


          • #6
            So, ich habs mir mal eben angeschaut und mir ist Folgendes aufgefallen:

            1. Die ganzen elseif sind imho nicht so prickelnd, da du nur immer nur eine(!) Prüfung vornimmst. Arbeite damit nur pro POST-Wert.

            2. Benutze auch bei einzeiligen Bedingsanweisungen geschweifte Klammern. Ansonsten kann das leicht zu Fehlern führen.

            3. Arbeite mit mysql_real_escape_string, um SQL-Injections zu vermeiden.

            4. Arbeite am Besten gar nicht mehr mit der veralteten MySQL-Erweiterung sondern nutze MySQLi oder noch besser PDO.

            5. Die in_array-Prüfung ist Tinnef, da du nur ein leeres Array hast. Starte statt dessen die Abfrage (SELECT id FROM register...), wenn der Benutzername syntaktisch korrekt ist und prüfe dann, ob schon so ein Eintrag vorhanden ist.

            6. Das gilt besonders für die Überprüfung auf eine schon vorhandene E-Mail. Das in_array ist auch hier überflüssig wie ein Kropf(f). Zumal du da noch nicht mal eine SQL-Abfrage startest.

            7. Der regexp für die E-Mail sieht auf den ersten Blick imho nicht ganz koscher aus. habs aber nicht überprüft. Bist du sicher, dass der stimmt?

            Gruß
            Peter

            PS: Wenn es eine Hausaufgabe wäre, hätte ich dir bestenfalls eine 4+ gegeben.
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              danke, dass du mal durchgeguckt hast, aber ich hab noch ein paar fragen:
              zu 1.: soll ich da else { if{ ...}} machen oder wie meinste das?
              zu 3.: wo soll ich das mysql_real_escape_string denn einbinden? hab mir ma grade durchgelesen, was das bringt aber ich verstehe es nicht so ganz
              zu 4.: wo soll ich den MySQLi benutzen? Beim Einbinden in die Datenbank?
              zu 5.: also kann ich dann $nickname = array(); $mail = array(); weglassen und bei "in_array einfach das was du geschrieben hast einfügen??
              zu 7.: meinst du "(!preg_match('§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§', ($email)))"?, wenn ja: ich hab die nur iwo von ner seite kopiert weil ich nicht weiß, wie ich das schreiben soll.

              Hoffe du kannst mir nochmal helfen vielleicht könntest du ja an meine angehängte php datei mal ein paar kommis dranschreiben und nochmal anhängen oder so danke schon mal im voraus

              Kommentar


              • #8
                Zitat von Recno Beitrag anzeigen
                zu 1.: soll ich da else { if{ ...}} machen oder wie meinste das?
                Ups sorry. Habe da eben was übersehen. Punkt 1 ist OK.
                Zitat von Recno Beitrag anzeigen
                zu 3.: wo soll ich das mysql_real_escape_string denn einbinden? hab mir ma grade durchgelesen, was das bringt aber ich verstehe es nicht so ganz
                Bei allen SQL-Statements. Also z.B:
                PHP-Code:
                $ergebnis 'SELECT id FROM register WHERE username = "'.mysql_real_escape_string($username).'"'
                Siehe auch hier.
                Zitat von Recno Beitrag anzeigen
                zu 4.: wo soll ich den MySQLi benutzen? Beim Einbinden in die Datenbank?
                MySQLi
                PDO
                Zitat von Recno Beitrag anzeigen
                zu 5.: also kann ich dann $nickname = array(); $mail = array(); weglassen und bei "in_array einfach das was du geschrieben hast einfügen??
                Nein. Anstelle des in_array baust du dort eine SQL-Abfrage mit entsprechender Prüfung ein.
                Zitat von Recno Beitrag anzeigen
                zu 7.: meinst du "(!preg_match('§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§', ($email)))"?, wenn ja: ich hab die nur iwo von ner seite kopiert weil ich nicht weiß, wie ich das schreiben soll.
                Da geht es um reguläre Ausdrücke und das ist ganz heftiger Tobak. Da solltest du dich als Anfänger wirklich auf Codeschnipsel beschränken. Such ggf. mal nach möglichst aktuellen Scripten, da mittlerweile auch Umlaute in Domains gestattet sind.

                Peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  ok danke jetzt hab ich fast alles verstanden, hab jetzt aber bei erstens schon:
                  else
                  {
                  if (strlen($_POST['password'] == <5 || >15))
                  {
                  echo 'Das Passwort darf nur 5-15 Zeichen haben.';
                  }
                  }
                  aber das sollte auch gehen oder?

                  nochmal zu 5. : soll ich dann die $nickname = array() lassen und einfach:
                  else
                  {
                  select id from register where username/email ...
                  }
                  oder soll ich die if-schleife auch lassen?

                  Kommentar

                  Lädt...
                  X