kostenloser Webspace werbefrei: lima-city


Keine Sonderzeichen erlauben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    masterakio1995

    Kostenloser Webspace von masterakio1995

    masterakio1995 hat kostenlosen Webspace.

    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.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Liegts vielleicht daran, das du Großbuchstaben verwendest? Die sind nämlich nicht drinne. Ansonsten funktioniert der Ausdruck eigendlich. Ich habe diese Seite zum Testen benutzt : http://www.regextester.com/ . Gefunden über Google Stichwort "pcre validator". ;)

    ^[a-zA-Z\d_]{5,20}$
  4. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    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
  5. Äh ja... sowas in der art war auch meine erste Vermutung aber auf php.net wirds genauso verwendet. Da bin ich wohl auf meiner Fehersuche irgendwann dem i verlustig geworden. ;)

    Beitrag zuletzt geändert: 23.8.2011 2:09:47 von travianinc
  6. Autor dieses Themas

    masterakio1995

    Kostenloser Webspace von masterakio1995

    masterakio1995 hat kostenlosen Webspace.

    das heist ohne das i funktioniert es?
  7. Also bei mir gehts... Du denkst schon dran, dass die Eingabe zwischen 5 und 20 Zeichen lang sein muss/darf?
  8. 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>";
    }

  9. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    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 ;-)
  10. Autor dieses Themas

    masterakio1995

    Kostenloser Webspace von masterakio1995

    masterakio1995 hat kostenlosen Webspace.

    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.
  11. Ich habe das Problem so gelöst:
    $text = preg_replace("([^a-zA-ZäöüÄÖÜ])", "", $text_input)


    Ich hoffe es hilft dir weiter ;)
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!