[3.2] Hinzufügen einer eigenen Validierung bei User-Registrierung

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
jan_D
Mitglied
Beiträge: 1
Registriert: 16.06.2017 17:01

[3.2] Hinzufügen einer eigenen Validierung bei User-Registrierung

Beitragvon jan_D » 16.06.2017 17:15

Hallo an die Community,

ich habe mir einen Wolf gesucht um eine Antwort auf meine Frage zu bekommen. Es gab auch einige Topics die dem, was ich benötige recht nah kamen, aber es hilft nichts: ich muss selbst etwas programmieren und brauche Eure Hilfe um hier nicht durchzudrehen ;)

Also:
wie der TopicTitel aussagt, möchte ich bei der Registrierung von neuen Benutzern eine eigene Form der Validierung implementieren.
Der neue User soll in einem HTML-Input-Feld die Emailadresse seines "Anwerbers" eingeben.

Diese Emailadresse wird mit einer DB abgeglichen und sofern die Emailadresse des Anwerbers gefunden wird, ist die Registrierugn erfolgreich, andernfalls soll eine Fehlermeldung ausgeworfen werden und ncihts wirds mit der erfolgreichen Registrierung.

Problem:
Ich finde in den Dateien: ucp_register.php und functions_user.php keinen Einstiegspunkt wo ich das implementieren könnte.

Bekannt:
Ich unterstelle, dass in der ucp_register.php der eigentlich Code für mein Vorhaben implementiert werden muss. Aber das einzig interessante was ich finde ist die Funktion validate_data(), die in der functions_user.php definiert ist.

Lösungsansätze:
Ich dachte zunächst, dass ich in der eben benannten Funktion rumwerkeln muss, um mein Ziel zu erreichen, aber wenn ich mir die Funktion genauer ansehe - verstehe ich ehrlich gesagt nicht viel.
Die Funktion ist für mich so "nichtssagend", dass ich davon ausgehe, dass ich an der falschen Stelle suche.

Ich würde gerne eine einfache if-Bedingung einbauen, die bei true die Registrierung abschließt.

Natürlich könnte ich die if-Bedingung RuckZuck einbauen, aber da ich hier bei dem Registrierungsvorgang nicht viel verstehe, würde die nichts bringen. Denn ich müsste ja den Code-Absatz finden, der dann letztendlich die REgistrierung abschließt und diesen in meine if-Bedingung einschließen.

Aber ich finde nicht mal den Absatz, der die Registrierung anstößt.

Ich habe das Mod-Forum für diese Anfrage gewählt, da ich denke hier die richtigen Ansprechpartner zu finden.

Ich benötige schlichtweg den Codeausschnitt, den ich mit meiner if-Bedingung einschließen muss, um erfolgreich zu sein.

Hat jemand von Euch die Zeile für mich?

Vielen Dank im Voraus!

JB

Verschoben von Extension Suche/Anfrage nach Coding & Technik am 16.06.2017 18:25 durch Kirk

Benutzeravatar
gn#36
Administrator
Administrator
Beiträge: 9175
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: [3.2] Hinzufügen einer eigenen Validierung bei User-Registrierung

Beitragvon gn#36 » 22.06.2017 21:58

Du könntest das ganze als Erweiterung bauen und ein paar Erweiterungsevents nutzen. Wenn du willst kannst du natürlich auch direkt die phpBB Dateien bei den unten genannten Events bearbeiten, aber wirklich viel einfacher wird es dadurch in meinen Augen nicht - da kannst du auch gleich eine Erweiterung bauen und hast nicht bei jedem Update Ärger. Anleitung: Eigene phpBB Erweiterungen erstellen

So oder so: Ganz einfach mit einer if Abfrage ist es nicht getan, denn du brauchst mindestens eine Template Änderung, eine Stelle die ggf. dein Template mit Daten befüllt im php Code sowie eine Stelle die die Daten prüft und ggf. die Registrierung mit einem Fehler abbricht.

Eigentlich müsstest du hierfür mit den Events im ucp_register hinkommen:

core.ucp_register_requests_after oder core.ucp_register_data_before: Für eigene Daten im Template bei der Registrierung.
core.ucp_register_agreement: Für eine Änderung der Registrierungsbedingungen
core.ucp_register_data_after: Für die Prüfung der Daten bei der Registrierung und ggf. Abbruch der Registrierung (einfach einen Fehler in die Error Variable eintragen, in dem Fall wird die Registrierung abgebrochen und die entsprechende Fehlermeldung angezeigt).

Das Template heißt ucp_register.html, falls du deine Felder in einer Erweiterung in die Registrierung einfügen willst musst du lediglich eine Datei namens ucp_register_credentials_after.html im Ordner styles/prosilver/template/event deiner Erweiterung ablegen, die deine zusätzlichen Felder enthält.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.


Zurück zu „Coding & Technik“