Florians Forum » Webmaster » Xobor (Homepagemodules & Dynamicboard) » Funktionen & Template » Usernamen blocken - Spam weitesgehend verhindern

Das folgende Skript dient dazu, bei bestimmten Usernamen zu verhindern, Beiträge abzuschicken.
Außerdem kann eine benutzerdefinierte Behandlungsroutine bei leerem Name-Feld gewählt werden.
Der Einbau soll möglichst einfach gehalten werden, aber zugleich mögliche zukünftige oder eigene Änderungen vereinfachen.
Entstanden ist das Skript aus diesem Beitrag von Wolfgang.
Einen 100%-igen Schutz wird durch das Skript leider nicht geboten, da eine vergleichbare PHP-Lösung mangels fehlendem Zugriff auf den Server nicht möglich ist und keine PHP-Unterstützung in Templates (verständlich) angeboten wird.
Außerdem funktioniert das Skript nur bei aktiviertem JavaScript.
Die erste Änderung erfolgt im Template-Element Neuen Beitrag schreiben.
Zumindest ist es vorgesehen, diesen Teil bei Script-Änderungen nicht mehr verändern zu müssen.
Direkt nach der Zeile:
function chkFormular() {
...folgt dieser kurze Quellcode, welcher sich auf die minimalste direkte Templateänderung beschränkt.
2
3
4
{{user_registered==true.start}}
var Name = '{{user_name}}';
{{user_registered==true.end}}
{{global_checkNewMessage}}
Als nächstes erfolgt das Anlegen einer globalen Variable, um evtl. zukünftige Änderungen zu erleichtern.
Dazu beim Template auf edit und dann Globale Variabeln definieren klicken.
Ganz unten wird dann eine neue Kategorie erstellt, z.B. mit der Bezeichnung "Scripts".
Kurz über dem Link um eine Kategorie zu erstellen, steht Neue Globale Variable.
Wählt dann als Bereich die zuvor erstellte Kategorie aus.
Als "Variable" legt ihr z.B. {{global_checkNewMessage}} fest.
Falls der Name anders lauten sollte, muss der obige Quelltext fürs Template angepasst werden.
Name und Beschreibung können nach eigenem Ermessen vergeben werden.
Bei "Typ" sollte Langer Text gewählt und bei "Vorgabe-Wert" schließlich das folgende Skript eingetragen werden:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var wrongNames = new Array('Mazzurbaf'); //Nicht zugelassene Namen in '' mit "," separiert
var showAlertMessage = true; //Meldung bei nicht zugelassenem User-Namen (true|false)
var AlertMessageText = 'Bitte einen zugelassenen User-Namen eingeben!'; //Meldungs-Text bei nicht zugelassenem Namen - showAlertMessage muss "true" sein
var AllowEmptyName = true; //Leeren User-Namen erlauben (true|false)
var EmptyName = 'Gast'; //Ersetzt leeren Usernamen ('' für keine Ersetzung)
var showEmptyMessage = true; //Meldung bei leerem User-Namen (true|false) - AllowEmptyName muss "false" sein
var EmptyNameMessage = 'Bitte einen User-Namen eingeben!'; //Meldungs-Text bei leerem User-Namen - showEmptyMessage muss "true" sein
if (Name) {
var NameField = null;
//var Name = '{{user_name}}'
}
else if (document.newms.name) {
var NameField = document.newms.name;
var Name = NameField.value;
}
else { return true; }
if (AllowEmptyName == true && Name == '') {
NameField.value = EmptyName;
return true;
}
else if (AllowEmptyName == false && Name == '') {
if (showEmptyMessage == true) {
alert(EmptyNameMessage);
}
return false;
}
for (i=0; i<wrongNames.length; i++) {
if(Name.toLowerCase() == wrongNames[i].toLowerCase()) {
if (showAlertMessage == true) {
alert(AlertMessageText);
}
if (NameField != null) {
NameField.focus();
}
return false;
}
}
Nach dem Speichern kann das Skript zukünftig einfach unter Layout -> Farben & Einstellungen -> Scripts nachträglich bearbeitet werden.
Das Skript bietet Möglichkeiten, um bestimmte Usernamen zu sperren und kann auch überprüfen, ob das Name-Feld leer gelassen wurde.
Sollte das Name-Feld leergelassen worden sein, kann optional eine selbst gewählte Fehlermeldung erscheinen oder ein Standard-Titel wie Gast eingetragen werden.
Um Spammern nicht unnötige Hinweise zu geben, können Meldungen deaktiviert werden, der Beitrag wird einfach nicht abgeschickt.
Voraussetzung ist jedoch aktiviertes JavaScript.
funzt net

Hallo Christoph!
Kannst du evtl. genauer beschreiben, inwiefern es nicht richtig funktioniert.
Ob es nur teilweise nicht funktioniert (nur bei Gästen) oder überhaupt nicht...
Welchen Browser in welcher Version verwendest du?
Einfach einige Details.