Seite 1 von 2

Registrierung anpassen und Daten mit Datenbank vergleichen

Verfasst: 16.09.2005 18:55
von pete h.
Hallo Leute,
ich hab ein problem... ein für mich recht schwieriges problem: ich soll für meine Schule ein Forum erstellen, hab natürlich sofort an phpBB gedacht :D Allerdings hat mir der Systemadministrator der Schule folgendes auferlegt: Bei der Anmeldung sollen zusätzlich zu den normalen Daten auch der Vor- und Nachname des Schülers, seine Klasse und der Vorname von z.b. der Mutter abgefragt werden. Normalerweise vergleiche ich die daten dann mit einer Schülerliste unserer Schule und schalte den Menschen dann frei..unser admin hat ziemliche angst vor spammer und leuten die wüst lehrer beleidigen, kann ich ja auch verstehen - Allerdings könnte das bei 1400 Schülern recht lange dauern und deswegen hab ich gedacht man könnte diese Liste in eine SQL-Tabelle stecken und bei der registrierung automatisch abfragen lassen - nur dort liegt das problem: ich habe recht wenig ahnung von php und mysql (ich kann mit php n paar variablen ausgeben und zahlen addieren, das wars dann auch schon..) und wurde auch aus dem registrierung-ergänzen-mod und der e-mail-banabfrage im phpbb-code nicht schlauer. Meine - für die profis hier hoffentlich recht einfach zu lösende - frage: wie liese sich so eine abfrage in die registrierung einbauen. In der Tabelle gibt es bis jetzt die felder user_firstname (vorname), user_lastname (nachname), user_dgclass (klasse - dg steht für die schule ;) ) und user_mother (vorname der mutter). Die Tabelle selbst heißt passenderweise dgphpbb_security.

Vielen Dank schonmal
Peter H.

Verfasst: 16.09.2005 19:08
von smaugilein
Schau mal hier, da findest du so ziemlich alles über PHP und MySQL:

http://tut.php-q.net/

Verfasst: 17.09.2005 00:13
von pete h.
Jo Danke,
hat mir geholfen, allerdings weis ich immernoch nicht so recht wie ich die Daten aus der MySQL-Tabelle mit denen vom Kontaktformular vergleichen soll :oops:

/EDIT: Problem ganz einfach gelöst: if($_POST['Vorname'] == $row['user_firstname'] && $_POST['Nachname'] == ... ) und so weiter^^ So funktionierts jetzt bei meinem Testformular - Morgen wirds dann ins board eingebaut :D

MFG Pete

Verfasst: 17.09.2005 10:43
von pete h.
Nächstes Problem: In welcher Datei werden die ganzen MySQL-Variablen festgelegt, also z.b RANKS_TABLE, USERS_TABLE usw.. Ich muss da nämlich was anpassen, da die Schülerliste nicht in USERS_TABLE, sondern in einer extra-tabelle liegt (dgphpbb_security, wie schon gesagt). Dafür will ich eben die Variable SECURITY_TABLE dazubauen, aber ich weiß nicht wo :wink:

Verfasst: 17.09.2005 10:45
von mad-manne
pete h. hat geschrieben:Nächstes Problem: In welcher Datei werden die ganzen MySQL-Variablen festgelegt,
Guckst du hier: includes/constants.php

Gruss :wink:
Manne.

Verfasst: 17.09.2005 10:58
von pete h.
Da wo ichs am wenigsten vermutet hätte.. lol danke :lol:

Verfasst: 17.09.2005 13:07
von pete h.
Und schon wieder variablen... wo die MySQL-Sachen liegen weiß ich nicht, aber mit so sachen wie $profiledata = get_userdata($HTTP_GET_VARS[POST_USERS_URL]); komm ich nich zurecht... ich weiß einfach nicht, wie ich die zusätzlichen Felder in die Registrierung einbauen soll und die eingegebenen Daten mit denen in der Tabelle vergleichen soll, weil die liegen ja in einer extra Tabelle, nicht in phpbb_users :-? Allerdings wird, egal ob bei der registrierung oder beim profil ansehen, nur diese Tabelle verwendet so wies aussieht *hmpf* Das nächste problem ist jetzt eben dass ich bei den sql-queries nicht durchblicke, wie z.b hier

Code: Alles auswählen

$sql = "SELECT config_value
                FROM " . CONFIG_TABLE . "
                WHERE config_name = 'default_dateformat'";
        if ( !($result = $db->sql_query($sql)) )
soweit ist klar, dass die phpbb_config gecheckt wird, auf default_dateformat... nur was mich jetzt verwirrt ist bei "if ( !($result))" usw das "->" - Was soll das heißen??? In den für die Reg benötigten Dateien befinden sich viele solcher abfragen, deswegen blicke ich da nie durch.. Die Felder wollte ich mit dem "Neues Feld in Profil einfügen"-Tutorial von Acid einbauen, allerdings wird dort immer etwas in die User-Tabelle geschrieben... ich weiß jetzt leider nicht wo ich am blödsten den Query für die Abfrage der Daten einbauen soll. Fragen über Fragen, aber wenigstens lern ich so langsam PHP kennen..

MFG Pete

EDIT:
So, die Felder sind drinn, allerdings funktioniert die abfrage nicht :x
Der Abfrage-Code in der usercp_registration sieht so aus:

Code: Alles auswählen

//SQL-Abfrage für DG ab hier..

        if($mode == 'register') {
        $sql= "SELECT
        user_firstname,
        user_lastname,
        user_dgclass,
        user_mother
        FROM
        ".USERS_SECURITY."
        WHERE user_firstname = '".$HTTP_POST_VARS['Firstname']."'
        AND user_lastname = '".$HTTP_POST_VARS['Lastname']."'
        AND user_dgclass = '".$HTTP_POST_VARS['Dgclass']."'
        AND user_mother = '".$HTTP_POST_VARS['Mother']."';";

        echo($sql."<br />\n");
    $result = $db->sql_query($sql) OR die(mysql_error());


    if(!($result = $db->sql_query($sql)))
       {
       $error = TRUE;
       $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Wrong_Pupil'];
       }
       $db->sql_freeresult($result);
     }

        //.. bis hierher
Ansich funktioniert die registrierung auch nur beim sql-qerie kommt, wie mir mein extra-echo gleich danach gezeigt hat, das raus:

Code: Alles auswählen

SELECT user_firstname, user_lastname, user_dgclass, user_mother FROM dgphpbb_security WHERE user_firstname = '' AND user_lastname = '' AND user_dgclass = '' AND user_mother = '';
Witzigerweise - oder eben nicht - startet dadurch die if-abfrage nicht und das skript macht weiter - die reg wird ganz normal ausgeführt o_O Ich hab wirklich keine ahnung mehr, was da schief läuft: eingabefelder sind da, die Variablen sind festgelegt.. normalerweise sollten meine 4 extra-felder also beim klick auf absenden in die HTTP_POST_VARS gesteckt und von der sql-abfrage verarbeitet werden... Kennt sich jemand etwas besser mit sowas aus??

Pete

Verfasst: 17.09.2005 17:45
von pete h.
kann mir damit niemand helfen? :cry:

Verfasst: 17.09.2005 18:14
von mad-manne
pete h. hat geschrieben:kann mir damit niemand helfen? :cry:
Gemach, Gemach junger Freund ... etwas mehr Geduld must du schon mitbringen :roll:

Eigene Topics sollten nach dem kleinen phpBB.de-Knigge frühestens nach 24 Stunden "gebumpt" werden ...

So long,
Manne.

Verfasst: 17.09.2005 19:31
von pete h.
Hmm, ja ok, ich hab das gemacht weil ichs nichmehr versteh - normalerweise gehts ja, der querie funzt, nur irgendwie werden die daten ausm registrierungsformular net in die variablen kopiert... WIESO?? Gibts vielleicht irgendwo ne beschreibung wie phpBB solche eingabefelder verarbeitet? Vielleicht werd ich dadraus schlauer ;)

pete