perlquestion
powerhouse
Ok Perl Monks, I really could use your wisdom here :o)<br>
<br>
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. <br>
<br>
Here is how I am searching it:<br>
<br>
<code>
$sth = $dbh->prepare (qq{ SELECT * FROM `forbidden_usernames` WHERE `f_user` LIKE ? });
$sth->execute("$str");
$row = $sth->fetchrow_hashref();
$sth->finish();
if ($str =~ /$row->{f_user}/i) {
return("bad");
}
</code><br>
<br>
Ok, now my problem is that if I even try to use my name as a username it is returning it as bad.<br>
<br>
I did have a wildcard in the <code>$sth->execute("$str");</code> like this: <code>$sth->execute("%$str%");</code>
<br>
<br>
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.<br>
<br>
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?<br>
<br>
Or should I go ask on a MySQL board, if I can find one?<br>
<br>
thx,<br>
Richard<br>