O.K.
Erstmal nur die Vorgehensweise :
Wo das Formular für die Useranmeldung zu finden ist, ist ja wohl jedem klar.
An diesem Formular muss jetzt etwas editiert werden.
Wir nehmen also das erste Formular, welches der user ausfüllen soll (function new_user ab Zeile 39 )
In zeile 72 ändern wir die Initialisierung des Formulars :
alt :
echo "<form name=\"Register\" action=\"modules.php\" method=\"post\">\n"
neu :
echo "<form name=\"Register\" action=\"modules.php\" method=\"post\" onSubmit=\"return checkAGB();\">\n"
Das bedeutet jetzt wird beim Absenden erstmal in die Funktion checkAGB() verzweigt. Dies muss eine JavaScript-Funktion sein, sonst funktioniert das nicht und diese Funktion muss als Rückgabewert ein True liefern, sonst wird das Formular nicht abgeschickt..
dann müssen wir noch ein feld einfügen, in dem der user bestätigen kann, das er die AGB gelesen hat und anerkennt:
Zeile 87-88
alt:
<input type=\"password\" name=\"vpass\" size=\"22\" maxlength=\"20\" value=\"\"> "._OPTIONAL1."\n<br>
<font class=\"tiny\">"._OPTIONAL2." "._YA_PWVORSCHLAG.": ".$xpass."</font>
neu :
<input type=\"password\" name=\"vpass\" size=\"22\" maxlength=\"20\" value=\"\"> "._OPTIONAL1."\n<br>
<input type = \"checkbox\" name=\"agb\" value=\"gelesen\" id=\"dd49\"><label for=\"dd49\">AGB's gelesen und anerkannt</label>
<font class=\"tiny\">"._OPTIONAL2." "._YA_PWVORSCHLAG.": ".$xpass."</font>
Jetzt die Javascript-Funktion, die irgendwo im modul stehen kann (möglichst gleich irgendwo oben und nicht in einer Funktion drinne) :
echo "<script language=\"JavaScript\">
function checkAGB()
{
if (document.Register.agb.checked)
{
return true;
}
else
{
alert(\"Bitte die AGB's lesen und anerkennen. \");
document.Register.agb.focus();
return false;
}
}
</script>";
Ich denke, das müsste es soweit sein ....
Wenn das Formular feststellt, das das Feld agb (checkbox) nicht angeklickst ist , dann wird eine Fehlermeldung ausgegeben und das Formular wird NICHT abgeschickt und es wird zum Formular zurückgekehrt mit dem Focus auf die checkbox.
So sollte es dann eigentlich funktionieren.
Aber Achtung, dies hier ist nicht getestet, nur so spontan aufgeschrieben .
Mfg
jubilee