Otto: String verarbeiten

Hallo,
ich erhalte über ein Formular eine E-Mail Adresse, wie kann ich folgendes erreichen?

Ich möchte alle Zeichen angeben welche erlaubt sind z.B. [a-z 0-9 @ .], wenn ein Zeichen vorkommt welches ich nicht angegeben habe möchte ich eine Fehlermeldung erhalten.

Gibt es in PHP eine Funktion die das kann?

Die Funktionen eregi, preg_X kenne ich, bekomme meine gewünschtes Ergebnis aber nicht damit hin.
Mache ich da was falsch?

MfG
Otto

  1. N'Obend

    Ich möchte alle Zeichen angeben welche erlaubt sind z.B. [a-z 0-9 @ .], wenn ein Zeichen vorkommt welches ich nicht angegeben habe möchte ich eine Fehlermeldung erhalten.

    Hier gibts Funtkionen in ein paar Sprachen (auch PHP), die eine Mailadresse auf korrekte Syntax überprüfen (das willst du doch oder?):
    http://aktuell.de.selfhtml.org/tippstricks/programmiertechnik/email/index.html

    Tschö,
    dbenzhuser

    --
    Heute in der Reihe „unser Ranking soll schöner werden“:
    Gefälschte Musikinstrumente Marke Bessons
    1. Hi,
      danke schon mal!
      Also ich habe mich mal ein bisschen mit SQL-Injection beschäftigt und mir geht es eigentlich weniger nur um die e-mail Adresse sondern mehr darum wie ich vorgeben kann welche Zeichen in Strings seine dürfen, um meine PHP Scripts sicherer zu gestalten.

      Mhhhh

      Was bedeutet diese Zeile den genau?

      preg_match("=[1]+$=i",$var

      verstehe das =^     und das +$=i nicht

      MfG
      Otto


      1. a-z 0-9 @ . ↩︎

      1. Was bedeutet diese Zeile den genau?

        preg_match("=[1]+$=i",$var

        verstehe das =^     und das +$=i nicht

        ich auch nicht ;)! funzt aber...

        mfg jaegermeister


        1. a-z 0-9 @ . ↩︎

    2. Hallo,

      Hier gibts Funtkionen in ein paar Sprachen (auch PHP), die eine Mailadresse auf korrekte Syntax überprüfen (das willst du doch oder?):
      http://aktuell.de.selfhtml.org/tippstricks/programmiertechnik/email/index.html

      ist dank "Umlaut-Domains" der Teil zur RegEx-Prüfung des Hosts nicht veraltet?
      (Dürfen im User-Teil einer Mail-Adresse jetzt eigentlich auch Sonderzeichen enthalten sein?)

      Schöne Grüße
      Julian

      --
      "Schokolade ist gut gegen Zähne."
  2. Hello,

    das sollte Dir fast egal sein, da Du das getrost der nächsten Instanz überlassn kannst.
    Zur Programmierung gehört auch etwas Vertrauen ;-)

    Aber was Du auf jeden Fall prüfen solltest:

    Wenn nur eine eMail-Adresse erwartet wird, ob auch nur genau eine drinsteht im Feld. Und da reicht bei PHP die Abfrage auf substr_count() http://de.php.net/manual/de/function.substr-count.php und die Suche nach dem '@'

    Das gilt auch für die freie Angabe des Absenders der Mail.

    Das hat was mit Deamon-Injection zu tun.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  3. Hallo,

    function check($var)
        {
            if (preg_match("=[1]+$=i",$var))  {
                return TRUE;
            } else {
                return FALSE;
            }
        }

    if (!check($mail)) {...;}

    sollte glaubich gehen.

    mfg
    jaegermeister


    1. a-z 0-9 @ . ↩︎