Hallo. Ich kenne mich "ein bisschen" mit normalen Regular Expressions aus. D.h. ich habe früher mal etwas damit gearbeitet, allerdings in anderen Programmiersprachen.
Es geht darum, dass man auf einer .php Seite in ein Input-Feld seinen Namen eingibt. Ich will dabei festlegen, dass der Namen nur aus folgenden Zeichen bestehen darf:
- a bis z
- A bis Z
- 0 bis 9
- von mir spezifierte "Sonderzeichen", wie z.B.: ` ' _ etc.
Eine Regular Expression sollte eigentlich dann so aussehen (habe es mit Regexbuddy überprüft, und es stimmt prinzipiell):
^[\[\]\`\'\_a-zA-Z0-9]+$
Wenn ich aber es dann in PHP folgendermaßen versuche:
kommt IMMER, schnurzpiepegal was ich eingebe, "not ok". Weiss jemand was denn nun daran falsch sein soll ?
Außerdem bin ich noch nicht sicher (falls es dann mal funktionieren sollte), wie ich genau feststellen soll, ob nun falsche Zeichen verwendet wurden oder nicht. Ich habe bisher das Eingabe-Feld auf a-z sowie 0-9 über die eregi Funktion limitiert, und die wurde nur dann wahr wenn kein falsches Zeichen drin war (Code war: eregi("^[a-z0-9]+$",$_POST['username']) ). Das hatte (bzw. tut es immer noch) funktioniert, aber nun möchte ich beim Inputfeld eben noch zusätzlich Sonderzeichen erlauben...
MfG
Es geht darum, dass man auf einer .php Seite in ein Input-Feld seinen Namen eingibt. Ich will dabei festlegen, dass der Namen nur aus folgenden Zeichen bestehen darf:
- a bis z
- A bis Z
- 0 bis 9
- von mir spezifierte "Sonderzeichen", wie z.B.: ` ' _ etc.
Eine Regular Expression sollte eigentlich dann so aussehen (habe es mit Regexbuddy überprüft, und es stimmt prinzipiell):
^[\[\]\`\'\_a-zA-Z0-9]+$
Wenn ich aber es dann in PHP folgendermaßen versuche:
PHP-Code:
if (isset($_POST['submit']))
{
$text = $_POST['text'];
if (ereg("^[\[\]\`\'\_a-zA-Z0-9]+$",$text))
{
echo "<br><br>ok<br>";
}
else echo "<br><br>NOT ok<br>";
echo "<br>Input: ".$text;
}
Außerdem bin ich noch nicht sicher (falls es dann mal funktionieren sollte), wie ich genau feststellen soll, ob nun falsche Zeichen verwendet wurden oder nicht. Ich habe bisher das Eingabe-Feld auf a-z sowie 0-9 über die eregi Funktion limitiert, und die wurde nur dann wahr wenn kein falsches Zeichen drin war (Code war: eregi("^[a-z0-9]+$",$_POST['username']) ). Das hatte (bzw. tut es immer noch) funktioniert, aber nun möchte ich beim Inputfeld eben noch zusätzlich Sonderzeichen erlauben...
MfG
Kommentar