PHP ver gevorderde |
|
Ik ben een verboden username's/tekens lijst bij het aanmelden aan het opstellen. Die lijst staat is een array. Nu wil ik dat er gekeken wordt of er een teken uit die array in de username (string) staat. Daarvoor heb ik deze functie geschreven (ik vond er niet meteen 1 op php.net die hetzelfde doet):
http://www.plaatscode.be/2823/
(het kan zijn dat het commentaar niet altijd klopt, dit is doordat ik soms dingen verander en de commentaar niet)
Ik pas de code zo toe:
<?php
$verboden = array(
',','"','"','\'', ''', //Gevaarlijke vergistekens
'?','=', '&', '&', '#', '+', //URL tekens
'(', ')', '{', '}', ';', //PHP tekens
'|', //Explode tekens
'admin', 'Admin', 'webmaster', 'Webmaster' //Namen
);
$str = htmlentities('&', ENT_QUOTES);
echo 'Zoeken naar: '.$str.'<br /><br />';
echo (array_in_string($verboden,$str))
?
'<br />Resultaat: Gevonden in verboden lijst<br /><br />'
:
'<br />Resultaat: Niet gevonden in verboden lijst<br /><br />'
;
?>
<?php ',','"','"','\'', ''', //Gevaarlijke vergistekens '?','=', '&', '&', '#', '+', //URL tekens '(', ')', '{', '}', ';', //PHP tekens '|', //Explode tekens 'admin', 'Admin', 'webmaster', 'Webmaster' //Namen ); echo 'Zoeken naar: '.$str.'<br /><br />'; echo (array_in_string ($verboden,$str)) ? '<br />Resultaat: Gevonden in verboden lijst<br /><br />' : '<br />Resultaat: Niet gevonden in verboden lijst<br /><br />' ; ?>
Als ik zoek naar:
&, ", ' => De dingen die in de verboden lijst staan zonder er iets bij lukt het goed.
Als ik echter zoek naar een teken uit de verboden lijst + een ander teken (maakt niet uit of het in de lijst staat of niet) krijgt ik steeds:
Citaat: Resultaat: Niet gevonden in verboden lijst
Ik heb in de functie wat met var_dumps, waarde echo's, etc zitten werken en de regel waar het fout gaat is die in de foreach, dan zet hij steeds een 0 in de zoek array.
Zelf zie ik de fout niet, jullie wel?
|