Hallo allemaal,
Ik ben IRC services aan het schrijven in PHP.
Wat ik wil doen is: Controleren of een bepaalde host gebanned is.
Ik krijg de host in dit formaat aangeleverd: nick!user@host
in dat formaat kunnen wildcards voorkomen, bijvoorbeeld *!*@*.host
Ik gebruik nu deze query:
$q=mysql_query("DELETE FROM `".$cfg['Services']['BanTable']."` WHERE `channel`='".$chan."' AND (`mask` LIKE '".wcsqlrx($banmask)."' OR
function wcsqlrx($pat){
$pat=str_replace("*","%",$pat);
$pat=str_replace("?","_",$pat);
return $pat;
}
Het staat in de database als * = % en ? = _ om 'LIKE' mogelijk te maken zodat PHP minder hoeft te parsen.
Wie weet er een manier om de correcte dingen te laten matchen?
Ik ben IRC services aan het schrijven in PHP.
Wat ik wil doen is: Controleren of een bepaalde host gebanned is.
Ik krijg de host in dit formaat aangeleverd: nick!user@host
in dat formaat kunnen wildcards voorkomen, bijvoorbeeld *!*@*.host
Ik gebruik nu deze query:
$q=mysql_query("DELETE FROM `".$cfg['Services']['BanTable']."` WHERE `channel`='".$chan."' AND (`mask` LIKE '".wcsqlrx($banmask)."' OR
function wcsqlrx($pat){
$pat=str_replace("*","%",$pat);
$pat=str_replace("?","_",$pat);
return $pat;
}
Het staat in de database als * = % en ? = _ om 'LIKE' mogelijk te maken zodat PHP minder hoeft te parsen.
Wie weet er een manier om de correcte dingen te laten matchen?