Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] RegEx mit Variabler länge

Einklappen

Neue Werbung 2019

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

  • #16
    Gibt es denn auch eine Frage dazu?

    Aus semantischer Sicht würde ich
    Code:
    private $minimaleVornamenLaenge = '4'; //So lange muss der Vorname mindestens sein 
    private $minimaleNachnamenLaenge = '4'; //So lange muss der Nachname mindestens sein 
    private $minimaleNachrichtenLaenge = '15'; //So lange muss die Nachricht mindestens sein 
    // ...
    als Konstanten definieren, da du diese ja nicht wieder änderst. Korrigiere mich, falls ich was übersehen habe.

    Wie fireweasel schon gesagt hat, sind die Methoden zur Validierung der einzelnen Eingaben relativ ähnlich.
    PHP-Code:
    private function vornamenPruefen() 
        { 
            if(isset(
    $_POST['token'])){ 
                 
                if (
    preg_match('/^[a-z]{'.$this->minimaleVornamenLaenge.', '.$this->maximaleVornamenLaenge.'}$/i'$_POST['vorname'])) {//Mit RegExp wird geprüft, ob die Syntak stimmt 
                   
    $vornamenZeichenCheck true
                }else{ 
                    
    $vornamenZeichenCheck false
                } 
                 
                if(empty(
    $_POST['vorname']) or !$vornamenZeichenCheck){ 
                    return 
    "<span class=\"KontaktFehlerMeldung\">Bitte geben Sie einen gültigen Vornamen an.</span>";//Wenn kein Name eingegeben wurde oder die Syntak nicht stimmt, wird eine Fehlermeldung ausgegeben. Wenn alles passt wird true zurückgeben 
                

            } 
        } 
         
        private function 
    nachnamenPruefen() 
        { 
            if(isset(
    $_POST['token'])){ 
                if (
    preg_match('/^[a-z]{'.$this->minimaleNachnamenLaenge.', '.$this->maximaleNachnamenLaenge.'}$/i'$_POST['nachname'])) { 
                    
    $nachnamenZeichenCheck true
                }else{ 
                    
    $nachnamenZeichenCheck false
                } 
                 
                if(empty(
    $_POST['nachname']) or !$nachnamenZeichenCheck){ 
                    return 
    "<span class=\"KontaktFehlerMeldung\">Bitte gib einen gültigen Nachnamen an.</span>"
                } 
            } 
        } 
    Könntest du anders aufziehen.
    PHP-Code:
    /**
     * pruefe $string
     *
     * @return boolean
     */
    private function pruefen($string
        { 
        
    // ... pruefen
        

    Der Funktion übergibst du dann den zu prüfenden String. Anhand des Rückgabewertes kannst du außerhalb der Funktion entscheiden, was im Folgenden geschehen soll. Die minimale bzw. maximale Länge des Strings könntest du ebenfalls als weitere Parameter übergeben.
    [URL]http://hallophp.de[/URL]

    Kommentar


    • #17
      Ok, danke.


      Die minimale bzw. maximale Länge des Strings könntest du ebenfalls als weitere Parameter übergeben.
      Ist das aus semantischer Sicht oder wegen der Performance?
      LG Sonic

      Kommentar


      • #18
        Aus Logischer! Nicht von jedem String erwartest du die selbe Länge, oder? Es kommt ja darauf an, was die Funktion leisten soll.
        [URL]http://hallophp.de[/URL]

        Kommentar


        • #19
          Ok,
          war falsch Zitiert von mir. Ich meine, ob etwas gegen zwei Funktionen spricht?

          LG Sonic

          Kommentar


          • #20
            Bitte nicht komplett auseinander nehmen. Hab mir viel Mühe gegeben
            Tja, was soll man sagen?

            - Wozu ist in jeder Methode isset($_POST['token']) vorhanden? Eine einmalige Prüfung sollte reichen
            -
            $_POST['vorname']
            wie schon gesagt ist hier alles fest verdrahtet: Die Form-Methode POST und der Name des Input-Feldes. Würdest DU das dynamisch gestalten, könntest Du auch Deine Methoden abstrakt gestalten (und damit dynamisch für beliebiege Felder anlegen).
            -
            preg_match('/^[a-z]{'.$this->minimaleVornamenLaenge.',
            wozu schreibt man eigentlich, wenn Du eh alle Hinweise ignorierst?
            -
            if(empty($_POST['vorname']) or !$vornamenZeichenCheck){
            zu spät! Hier wurde die Notice bereits „geworfen“ wenn das Feld nicht definiert war. Existenzprüfung muss immer zuerst erfolgen.
            -
            return "<span
            Viel zu speziell, die Methode ist nur für den Zweck geeignet, bei Prüfung immer auch gleich HTML auszuliefern.
            [COLOR="#F5F5FF"]--[/COLOR]
            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
            [COLOR="#F5F5FF"]
            --[/COLOR]

            Kommentar


            • #21
              Danke für eure Vielen Tipps.

              Ich hab mich schlielich für ctype-Funktion entschieden.

              LG Sonic

              Kommentar

              Lädt...
              X