Keine Sonderzeichen erlauben
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
art
ausdruck
ausgeben
code
eingabe
ergebnis
erlaubt code
fehler
jemand
meldung
problem
sonderzeichen
stand
stichwort
testen
url
vergleich
vermutung
version
zeichen
-
Hallo,
Ich weis das es dieses Thema schon oft gab. Auch gegooglet habe ich schon. Nur habe ich kein ergebnis hingekriegt -.-.
Mein Code:
if (preg_match('/^[a-z\d_]{5,20}$/i', $username)) { //Meincode } else { echo "</br><p>Keine Sonderzeichen im Benutzternamen erlaubt.</p>"; }
Mein Problem ist nur das egal was ich eingeben immer die Fehler Meldung erscheint. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
travianinc schrieb:
Liegts vielleicht daran, das du Großbuchstaben verwendest? Die sind nämlich nicht drinne.
Der modifier i bedeutet, das die Suche Case-Insensitive ist
masterakio1995 schrieb:
Hallo,
Ich weis das es dieses Thema schon oft gab. Auch gegooglet habe ich schon. Nur habe ich kein ergebnis hingekriegt -.-.
Mein Code:
[...]
Mein Problem ist nur das egal was ich eingeben immer die Fehler Meldung erscheint.
if (preg_match('/^[a-z\d_]{5,20}$/i', $username) == false) { //Meincode } else { echo "</br><p>Keine Sonderzeichen im Benutzternamen erlaubt.</p>"; }
Edit: Rückgabe 0=Nichts gefunden, false=Fehler;
Also muss man == false verwenden..
Beitrag zuletzt geändert: 23.8.2011 11:42:13 von thomasba -
das heist ohne das i funktioniert es?
-
thomasba hatte noch mehr geschrieben, aber das ist wohl beim editieren verloren gegangen.
Undzwar stand noch da, dass es bei älteren Versionen von PHP sein kann, dass preg_match einen anderen Wert zurückgibt.
Nimm doch einfach das Codesnipped aus seinem Beitrag. Das i muss drinnebleiben.
Falls es dann immer noch nicht funktioniert, lass dir doch einfach den Rückgabewert mittels echo ausgeben und Vergleiche dann auf den anstatt 0.
Und wenn dus ganz sicher haben willst, mach doch sowas:if (preg_match('/^[a-z\d_]{5,20}$/i', $username) == preg_match('/a/','a')) { //Meincode } else { echo "</br><p>Keine Sonderzeichen im Benutzternamen erlaubt.</p>"; }
-
travianinc schrieb:
thomasba hatte noch mehr geschrieben, aber das ist wohl beim editieren verloren gegangen.
Undzwar stand noch da, dass es bei älteren Versionen von PHP sein kann, dass preg_match einen anderen Wert zurückgibt.
Nimm doch einfach das Codesnipped aus seinem Beitrag. Das i muss drinnebleiben.
Falls es dann immer noch nicht funktioniert, lass dir doch einfach den Rückgabewert mittels echo ausgeben und Vergleiche dann auf den anstatt 0.
Und wenn dus ganz sicher haben willst, mach doch sowas:if (preg_match('/^[a-z\d_]{5,20}$/i', $username) == preg_match('/a/','a')) { //Meincode } else { echo "</br><p>Keine Sonderzeichen im Benutzternamen erlaubt.</p>"; }
Es ging nicht verloren, ich war einfach nur Müde und hab sch* geschrieben
"== false" ist das was hier gewünscht ist, denn 0=nichts gefunden und false=fehler und "== false" sieht beide werte als das gleiche -
Also kann das jemand nochmal zusammenfassen? Ich komme mit diesem preg_match nämlich einfach nicht zurecht ;) am besten wäre wen mir jemand das ganze nochmal erklären würde.
-
Ich habe das Problem so gelöst:
$text = preg_replace("([^a-zA-ZäöüÄÖÜ])", "", $text_input)
Ich hoffe es hilft dir weiter ;) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage