Seite 1 von 1

Ausführung von Script bei Registrierung

Verfasst: 05.03.2015 17:37
von Hammersjoe
Hallo zusammen,

ich habe ein Forum, auf dem ich ein Registrierungsscript auf der Registrierungsseite hinzufügen möchte.
Dieser Script soll eine Externe Datenbank nach dem eingegebenen Benutzernamen überprüfen, sobald man das Registrierungformular absendet.
Wenn der eingegebene Benutzername mit dem Namen in der Datenbank überein stimmt, soll der Benutzer registriert werden. Ansonsten soll ein Fehler zurückgegeben werden.

Ich habe folgenden Code nach der Zeile "$cp->submit_cp_field('register', $user->get_iso_lang_id(), $cp_data, $error);" in der Datei "ucp_register.php" im Verzeichnis "[Hauptverzeichnis]/includes/ucp" hinzugefügt:

Code: Alles auswählen

$Abfrageserver = "localhost";
$Abfragedbuser = "benutzer";
$Abfragedbpass = "passwort";
$Abfragedbname = "datenbank";
           
$AbfrageDB = mysql_connect($Abfrageserver, $Abfragedbuser, $Abfragedbpass);
mysql_select_db($Abfragedbname);

$Abfrageresult = mysql_query("SELECT * FROM datenbank WHERE Name='" + $data['username'] + "'");

if ($Abfrageresult) {
    while($Abfragerow = mysql_fetch_row($Abfrageresult, 0)){
        
        if(isset( $data['username'] ) ) {
            if ($Abfragerow['Name'] != $data['username']) {
                $error[]= 'Die Registrierung ist nicht möglich...';
            }
        }
        
    }
}
else {
    $error[]= 'Keine Datenbankverbindung Möglich.';
}
Dieser Code funktioniert außerhalb des Forums einwandfrei. Im Forum selber funktioniert dieser Code jedoch nicht. (Ein PHPBB-Debug Error wird nicht ausgegeben)
Kann mir bei diesem Problem jemand weiter helfen? Gibt es irgendwas, was ich nicht beachtet habe? Habe ich den Code vielleicht an der Falschen Stelle eingefügt?

Ich freue mich auf jede Antwort.

mfg.
Hammersjoe

Re: Ausführung von Script bei Registrierung

Verfasst: 05.03.2015 19:37
von gn#36
Aktivier' doch mal den Debug Modus (KB:debugmode), eventuell kriegst du dann raus, was schief geht.

Ansonsten wäre es wohl hilfreich, wenn du ein paar mehr Infos springen lässt: Was genau "funktioniert nicht"? Schlägt die registrierung immer fehl, schlägt sie nicht fehl obwohl sie sollte, kommt eine Weiße Seite, ...

Re: Ausführung von Script bei Registrierung

Verfasst: 05.03.2015 21:02
von Hammersjoe
Hey,

vielen Dank für die Information.
Trotz Debug (und Debug-Extra) Modus habe ich keine Debug Benachrichtigungen auf dieser Seite erhalten.
Die Registrierung schlägt jedes mal fehl, da keine Datenbankverbindung hergestellt werden kann.
(Nachricht "Keine Datenbankverbindung Möglich." im Code.)

Ist es vielleicht möglich, dass durch PhpBB gar keine Datenbankverbindung hergestellt werden kann?


mfg.

Re: Ausführung von Script bei Registrierung

Verfasst: 05.03.2015 22:20
von gn#36
Ok, nachdem ich noch mal einen Blick auf deinen Code geworfen habe würde ich sagen dass diese Zeile so Käse ist:

Code: Alles auswählen

$Abfrageresult = mysql_query("SELECT * FROM datenbank WHERE Name='" + $data['username'] + "'");
Das + hängt keine Strings aneinander, dafür gibt's in PHP den . Operator.

Code: Alles auswählen

$Abfrageresult = mysql_query("SELECT * FROM datenbank WHERE Name='" . $data['username'] . "'");
Ich nehme mal an so wie das da war kommt da eine ungültige Anfrage bei raus.

Das macht dich übrigens in der Form anfällig für eine SQL Injection.


Ansonsten lass dir einfach mal den Fehler ausgeben:

Code: Alles auswählen

mysql_error();
Außerdem würde ich mir in so einer Situation den Text ausgeben lassen, der tatsächlich in der Anfrage landet, also z.B. erst in einer Variablen speichern.