Passwortsicherheitsfunktion einbauen

  • Hey,


    ich erstelle mein Formular mit Javascript und gebe es aus. Dies muss so sein, da ich das Formular erst beim Klick auf einen Button angezeigt haben möchte.

    Nun möchte ich eine Passwortsicherheitsfunktion einbauen welches die Sicherheit des Passwortes anzeigt. Ich habe geplant auf den Absendebutton ein Click-Event und auf das Passwort-Feld ein Keyup-Event zu regisitrieren und dann die Formulardaten an eine PHP-Datei zu senden welche die Daten verwertet und dann würde ich auch das Passwort an diese Datei senden via Ajax und dann auf das Passwort bestimmte Pattern anwenden mit preg_match().


    Das Problem ist nur, dass dieser Button oder das Feld immer undefined sind. Auch wenn es angezeigt wird.


    Warum ist das denn so?

  • Hi,


    Kurze Anmerkung vorweg: Da Du eh JavaScript verwendest, nutze lieber Ajax, um ein Formular zu laden und es in das DOM einzuhängen.

    Das hat den Vorteil, dass Du eine HTML-Datei hast, in der Du das Formular bequem nach Bedarf anpassen kannst. Du musst dann nicht Dein JavaScript dafür immer anfassen.


    Wenn undfined gegeben ist, wird das Event vermutlich nicht auf ein Element angewendet. Wie auch immer Du das Element selektierst, kann da ja schon was falsch sein.


    Am besten Du postest die relevanten echten Zeilen, damit man evtl. dazu mehr Aussagekraft hat.

  • Hey,


    vielen Dank für deinen guten Ratschlag. Ist doch besser als das Formular in Javascript mit + zu verketten.

    Werde ich dann auch so umsetzen.


    Das ist der Code: Manage Users. Da musst du zu <script> scrollen.


    Ich teste das ganze erstmal mit deinem Vorschlag und melde mich dann wieder.


    Stef

  • Als EventListener erkenne ich da nur addNewUser und exportUserList.

    Dass undefined ist, siehst Du bestimmt im Developer-Tool Deines Browsers, oder?


    Dann analysiere das am besten dort. Es ist einfacher, wenn man das fertige Dokument sieht.

  • Sorry. Das ist der alte Code gewesen. Den aktuellen habe ich local.


    Ich habe jetzt das Formular in eine HTML-Datei ausgelagert und lade es mittels Ajax beim click auf User hinzufügen in manageUsers.php.

    Nun habe ich weiteres probiert wie ich, wenn ich den Button clicke die Daten an meine PHP-Datei sende um diese dort weiterzuverarbeiten.


    Da der Button nur in diesem 1nen Request vorhanden ist muss ich in diesem die Function dafür ausführen. Das Problem ist, dass die Intialisierung eines Click-Events nicht greift. Es kommt nichts zurück. Wenn ich die Function einfach so aufrufe dann wird das PHP-Array ausgegeben aber alle Keys ohne Value. Ist ja auch klar. Irgendwie funktioniert es auch nicht, egal in welche Funktion ich den Parameter zum verhindern der Seitenneuladung bei click auf den Submit-Button hinzufüge, dass die Seite sich nicht neuladet.


    Desweiteren habe ich auch versucht erst die Function aufzurufen wenn alle Felder eine Value haben. Aber das Problem ist, dass dieses ganze ja schon beim Click auf User hinzufügen ausgeführt wird. Wie bereits oben erwähnt lässt sich kein Click-Event auf den Button intialisieren.


    Bei der Variable Button wird ja der Button selektiert. Das habe ich bereits getestet, Trotzdem wird kein Click-Event ausgeführt.


    Meine Scripte:


  • Hey,


    das funktioniert bei mir auch nicht. Es wird nichts ausgegeben oder in die Konsole geschrieben.

    Das Click-Event auf den Button funktioniert aus unerklärlichen Gründen nicht. Ich verstehe das ehrlich gesagt auch nicht.


    Die Function sendUserData wird garnicht erst aufgerufen. Ich bekomme keinen Konsoleneintrag der FormData.

    Der Button existiert doch...


    So habe ich es getestet:


  • Also wenn ich das 1:1 in codepen übernehme und einen alert in die Funktion sendUserData setze, haut es hin.

    Du solltest der Funktion den Event-Parameter mitgeben und in der Funktion als erstes ein e.preventDefault(); setzen.

    Ansonsten wird das Formular natürlich abgeschickt.

  • Hey,


    ich habe es nun doch komplett anders gemacht weil ich mit dem nicht zu Recht kam.


    Es funktioniert jetzt alles.



    Grüße,

    Stef

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!