Ok Perl Monks, I really could use your wisdom here :o)
I've created a site in perl and MySQL. when my visitors
register, I have it check a database table of obscene usernames and return "bad" if it's in there.
Here is how I am searching it:
$sth = $dbh->prepare (qq{ SELECT * FROM `forbidden_usernames` WHER
+E `f_user` LIKE ? });
$sth->execute("$str");
$row = $sth->fetchrow_hashref();
$sth->finish();
if ($str =~ /$row->{f_user}/i) {
return("bad");
}
Ok, now my problem is that if I even try to use my name as a username it is returning it as bad.
I did have a wildcard in the
$sth->execute("$str"); like this:
$sth->execute("%$str%");
I thought that might have been the problem, but it was not. when I took out the wild cards on both sides of it, It is still saying any username is bad.
However, if I just take out the LIKE and make it a = then it won't get something like asshole when I only have ass in the database and visaversa.
Is there a "contains" like Perl's =~ for MySQL, that you know of in your infinite wisdom?
Or should I go ask on a MySQL board, if I can find one?
thx,
Richard