coldfingertips has asked for the wisdom of the Perl Monks concerning the following question:

Sorry about the two questions in the same day but this is really bugging me. I have a form which I'm using but of course I underestimated the maturity of the people who use it and I got a lot of people tossing in swear words on the sign up form *sigh*.

I tried adding a word filter but when I added it the filter blocked EVERYTHING, even things that weren't in the @ignore didn't go through. Ugh, I am getting frustrated with this one. Why is it blocking things I'm not asking it to?

if(param()){ my $username = param('username'); $username =~ s/\s+\z//; my $askname = param('askname'); $askname =~ s/\s+\z//; my $update = param('update'); if($username){ if($askname){ if(grep($username, @ignore) || grep($askname, @ignore)) { print "That didn't quite work"; exit; } if($update eq "add"){ if(exists $list{$username}){ print "Username already exists in database.\n"; } else{ $list{$username} = $askname; print "Username was added to our system!<p>\n"; } } elsif($update eq "rem"){ if(exists $list{$username}){ delete $list{$username}; print "Account information was removed from the sy +stem.\n"; } else{ print "Oops, it doesn't appear that username is in + our database.\n"; } } } else{ print "For this to work please add your username.\n"; } }else{ print "Unless your name is null, please go back and fill it in +.\n"; } } print end_html();