Jutta Rosenbach: CGI: Bestimmte Namen verbieten

Hallo Ihr Lieben,

zwar weiß ich, wie ich EINEN einzelnen Begriff sperren kann, aber wie könnte ich auf einen Schlag verhindern, daß als Name einer aus einer ganzen Liste mit Unnamen, Falschen Namen und Schimpfwörtern eingetragen werden kann?

Wenn sich also jemand entweder mit "Test", Helmut Kohl, Webmaster oder Rosenbach anmeldet, soll er zur Antwortkriegen: "Netter Scherz" und der Curser soll sich dann auf das betreffende Feld (z.B. "Name") setzen.

Benötigt wird sowas im Prinzip überall dort, wo User sich eintragen können: Chat, Forum, Gästebuch usw.

Ich finde es nämlich sehr ärgerlich, wenn ich was für eine bestimmte Zielgruppe liebevoll einrichte und dann wird das für Tests mißbraucht.

Vielen Dank für Eure Aufmerksamkeit. Über eine Antwort würde ich mich sehr freuen.

Jutta U. Rosenbach

  1. Hi,

    ich habe für einen solchen Zweck einmal eine Datei mit verbotenen Begriffen erstellt (forbidden.txt). Ich lese dann zeilenweise ein, prüfe auf Gleichheit (wahlweise Wortbeginn (Test2)) und setze ggf. eine flag-Variable. Das ganze sind 5 oder 6 Codezeilen, unabhängig von der Zahl der Wörter. Danach folgt nur noch "if (flag == 1) { &netterScherz; }", und das war's!

    Cheatah

  2. Hallo Jutta,

    Wenn sich also jemand entweder mit "Test", Helmut Kohl, Webmaster oder Rosenbach anmeldet, soll er zur Antwortkriegen: "Netter Scherz" und der Curser soll sich dann auf das betreffende Feld (z.B. "Name") setzen.

    Am besten sammelst Du alle unerwuenschten Eingaben in einem Array:

    var Unworte = new Array("Kohl","Webmaster","Rosenbach");

    und dann eine Funktion:
    function checkUnwort() {
    flag = 0;
    for(i = 0; i < Unworte.length; i++)
       if(document.Formular.Feldname.value == Unworte[i])
          flag = 1;
    if(flag == 1) return true;
    else return false;
    }

    Die Funktion gibt also true zurueck, wenn eines der Unworte eingegeben wurde, und false, wenn nicht.

    viele Gruesse
      Stefan Muenz

  3. Hallo Stefan und Cheatah

    Vielen Dank für Eure Hilfe

    Gruß
    Jutta

  4. hi!

    zwar weiß ich, wie ich EINEN einzelnen Begriff sperren kann, aber wie könnte ich auf einen
    Schlag verhindern, daß als Name einer aus einer ganzen Liste mit Unnamen, Falschen
    Namen und Schimpfwörtern eingetragen werden kann?

    Stefan hat schon geantwortet, wie es mit Javascript funktioniert. Hier noch eine passende Perl-Funktion:

    open DATEI, "<unworte.txt";
    while (<DATEI>)
    {
      if (/^$user$/) { &tu_irgendwas; }
    }
    close DATEI;

    In $user steht natürlich der eingegebene Username, in der Datei unworte.txt alle Namen, die nicht verwendet werden dürfen.

    bye, Frank!

    1. Hallo Frank,

      Stefan hat schon geantwortet, wie es mit Javascript funktioniert. Hier noch eine passende Perl-Funktion:

      Auch Dir herzlichen Dank für für Deine Hilfe

      Gruß
      Jutta