Bei einem Formular bestimmte Wörter verbieten#2(splitted)

zorro12

Grünschnabel
Re: Bei einem Formular bestimmte Wörter verbieten

Hallösche,

kann mir vielleicht hier jemand helfen!?
Bin ich hier überhaupt richtig?
Ich habe ein fertiges Script mit Anmeldefunktion.
Wenn jetzt "Unbekannt" seinen Usernamen eingibt, möchte ich verhindern das er einen "bad" Username benutzt.
Soweit klar!
Mit dem folgenden Code geht das auch, nur wenn der User z.B. schlechtesWort25 angibt funktioniert es schon nicht mehr.
Gibt es da eine Möglichkeit, um so was zu verhindern?

-------------------------------------------------------------------------------------------------------------------------------

function CheckUserName($username)
{
include("config.inc.php");
if (!isset($username) || strlen(WebOut($username))<3) {
return $member_msg_toshortmin3;
}
if ($username == "schlechtesWort" || $username == "SchlechtesWort"){
return "Username ist verboten!";
}
$db=db_connect();
$sql1="SELECT * FROM $member_db";
$result1=mysql_query($sql1,$db);
while ($row1 = mysql_fetch_array($result1)) {
$user_name=WebOut($row1[username]);
if ($user_name==$username){
return "Username bereits vergeben!";
}
}
db_close($db);
}
------------------------------------------------------------------------------------------------------------------------------
Danke im voraus!
zorro12
 
Re: Bei einem Formular bestimmte Wörter verbieten

@zorro12:
Mach mal aus
if ($username == "schlechtesWort" || $username == "SchlechtesWort"){
das hier:
if ($username == stristr("schlechtesWort") || $username == stristr("SchlechtesWort")){

@admins/mods:
Bitte teilt den Thread auf, danke.
 
Hallo Jörg,

vielen Dank für die schnelle Antwort,aber das leider net!?

Selbst wenn ich das Badword genau eingebe, gibt es keine Fehlermeldung mehr...

Aber vielleicht hast Du noch ne andere Idee?

Gruß
Zorro
 
Re: Bei einem Formular bestimmte Wörter verbieten

Flüchtigkeitsfehler meinerseits, entschuldigung.

PHP:
 if (stristr($username,"schlechtesWort")){
ist die richtige Lösung, Groß-/Kleinschreibung wird auch ignoriert.
 
@Jörg,

echt Obergenial funktioniert einwandfrei!

Vielen Dank!

Nur noch eine Kleinigkeit,habs probiert aber geht nicht...
Wie siehts bei mehreren Wörtern aus?

if (stristr($username,"schlechtesWort")){
 
Hi,
da musste dann wahrscheinlich immer ne Oder-verknüpfung machen:
PHP:
if (stristr($username,"schlechtesWort") || stristr($username,"bösesWort")){
Denke das sollte klappen, nur kommt drauf an wieviele Wörter du hast die du nicht
gelten lassen willst, weil wenn es zu viele sind ist das ziemlich umständlich.
Andere Lösung fällt mir aber auch net ein...
 
Du könntest alle Wörter in einem Array ranholen,
das Array Wert für Wert mit dem Usernamen vergleichen.

PHP:
$badwords = array("kuchen","sekt","selters");
for($i=0;$i<count($badwords);$i++) {
    if(stristr($username,$badwords[$i]) $error.=' '.$badwords[$i].' ';
}
if(isset($error)) {
    //geht nicht klausel
}
So aussem Kopf, schönes WE und tschüss
 
Zurück