Nieuw lid |
|
Ik probeer een opgegeven variabele te filteren tegen mysql injections.
Enige toegestane characters mogen zijn:
Letters (hoofd- en kleine letters)
Cijfers
Puntjes
Slechts één minusteken
Dat laatste blijkt helaas niet mee te vallen.
Ik heb dit geprobeerd:
<?php if(ereg("^[a-zA-Z0-9\.-]+$",$username) && ereg("[-]?",$username))
{
$error_username_illegal = "false";
}
else
{
$error_username_illegal = "true";
} ?>
<?php if(ereg("^[a-zA-Z0-9\.-]+$",$username) && ereg("[-]?",$username)) { $error_username_illegal = "false"; } else { $error_username_illegal = "true"; } ?>
De script checkt dus of er alleen letters, cijfers, puntjes en minustekens (ja inderdaad, ook meerdere minustekens). En de 2de ereg(); checkt of er slechts 1 minusteken aanwezig is. Dit werkte dus niet.
Weet iemand hoe ik met ereg slechts één minusteken kan toelaten, maar tegelijk wel meerdere kleine/grote letters en puntjes en cijfers kan toelaten en dat allemaal (inclusief minusteken) in willekeurige volgorde.
PS: Het hoeft niet alleen in ereg, andere functies/methode's zijn ook acceptable.
bij voorbaat dank,
-Pimpslap
|