Sonderzeichen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sonderzeichen

    Guten Morgen,

    ich suche einen Ausdruck, mit den ich in String Sonderzeichen finden kann.

    Es sollen nur Strings zugelassen werden, in denen Buchstaben von a-z , A-Z, Bindestriche - , Umlaute ö Ö ä Ä ü Ü und Zahlen von 0-9 sind.

    Die Zeichen ! " § $ % etc. sind nicht erlaubt. Wie lässt sich das realisieren?


    Mfg
    Zocker

  • #2
    Das wird ja wohl ein Fall für reguläre Ausdrücke sein. Siehe z.B. preg_match in der PHP Doku.

    Kommentar


    • #3
      Vielen Dank. Ich habe es wie folgt gelöst:

      PHP-Code:
      if (!preg_match("/^[a-zA-ZüöäÜÖÄß0-9_-]{1,20}$/",$user))
      {
          
      $fehler="Dein Username ist ungültig! (nur Buchstaben, Ziffern, keine Sonderzeichen)";
          echo 
      "FALSCH";


      Mfg
      Zocker

      Kommentar


      • #4
        Guten Morgen allerseits,

        ich habe den oben aufgeführten mal folgendermaßen ausprobiert:

        PHP-Code:
        <form action="" method="POST">
        <input name="user" type="text" />
        <input name="submit_btn" type="submit" />
        </form>
        <?
        $user = trim($_REQUEST[user]);
        if (!preg_match("/^[a-zA-ZüöäÜÖÄß0-9_-]{1,25}$/",$user)) echo "Fehler: " . $user;
        else echo "alles ok: " . $user;
        ?>
        Folgende Ergebnisse erhalte ich:

        Test => alles ok: Test
        Test1 => alles ok: Test1
        Täst => Fehler: Täst
        Test_1 => alles ok: Test_1
        Test! => Fehler: Test!

        Eigentlich sollten doch auch Umlaute als Ok durchgehen - Woran kanns liegen? Hab ich was übersehen?

        Kommentar


        • #5
          Original geschrieben von Kenyo
          Eigentlich sollten doch auch Umlaute als Ok durchgehen - Woran kanns liegen? Hab ich was übersehen?
          Überall gleiche Zeichenkoiderung verwendet?

          - Dokument in Kodierung X ausgeliefert?
          - Formulardaten in Kodierung X versandt?
          - Script in Kodierung X gespeichert?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Danke für den Tip, die (temporäre) Umwandlung mit utf8_decode bzw. utf8_encode bringt hier das gewünschte Ergebnis:
            (auch, wenn es sicherlich nicht die optimale Lösung ist )

            PHP-Code:
            <form action="" method="POST">
            <input name="user" type="text" />
            <input name="submit_btn" type="submit" />
            </form>
            <?
            $user = utf8_decode(trim($_REQUEST[user]));
            if (!preg_match("/^[a-zA-ZüöäÜÖÄß0-9_-]{1,25}$/",$user)) echo "Fehler: " . utf8_encode($user);
            else echo "alles ok: " . utf8_encode($user);
            ?>

            Kommentar

            Lädt...
            X