tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Maniac
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
560
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Takuto Takuto ist offline Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    11
    hallo,

    folgendes Problem:

    Ich würd gern in mein aktuelles PHP formular script reguläre ausdrücke einbaun um die email, telefonnummer und das geburtsdatum zu überprüfen aber ich weiß nich wie und wo ich das am besten reinschreib damit das klappt...

    hier mal der überprüfungsteil meines php codes:
    PHP-Code:
    if($_POST["submit"] == "Senden"){
        
        if(
                    empty(
    $_POST['name']) || $_POST['name'] == ' ' ||
                    empty(
    $_POST['strasse']) || $_POST['strasse'] == ' ' ||
                    empty(
    $_POST['plz']) || $_POST['plz'] == ' ' ||
                    empty(
    $_POST['ort']) || $_POST['ort'] == ' ' ||
                    empty(
    $_POST['email']) || $_POST['email'] == ' ' ||
                    empty(
    $_POST['birthday']) || $_POST['birthday'] == ' ' ||
                    empty(
    $_POST['Vorwahl']) || $_POST['Vorwahl'] == ' ' ||
                    empty(
    $_POST['Telefon']) || $_POST['Telefon'] == ' '
                
    ) {
                    echo 
    '<p class="error2">Es wurden nicht alle Pflichtfelder ausgef&uuml;llt! Fehlerhafte Felder wurden Rot markiert.</p>';    
                } else {

    $anrede $_POST["Anrede"];
    $von $_POST["name"];
    $geburtstag $_POST["birthday"];
    $email $_POST["email"];
    $strasse $_POST["strasse"];
    $ort $_POST["plz"]." ".$_POST["ort"];
    $telefon $_POST["Vorwahl"]." ".$_POST["Telefon"];
    $fax $_POST["VorwahlFax"]." ".$_POST["Telefax"];
    $mobil $_POST["VorwahlMobil"]." ".$_POST["Mobil"];
    $grund $_POST["Anfragegrund"];
    $taetigkeit $_POST["taetigkeit"];
    $eigenschaft $_POST["eigenschaft"];
    $bedeutung $_POST["bedeutung"];
    $firma $_POST["firma"];
    $einkommen $_POST["einkommen"];
    $prioritaet $_POST["prioritaet"];
    $wichtigweil $_POST["wichtigweil"];
    $stunden $_POST["stunden"]; 
    hoffe mir kann jemand helfen.
    Vielen dank im voraus.
     

  2. #2
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    In deinen if(empty..... Block.
     
    Die Schweine von heute sind unsere Schnitzel von morgen!

  3. #3
    Takuto Takuto ist offline Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    11
    und wie genau schreib ich das rein damit er das überprüft?

    irgendwas in der richtung?
    PHP-Code:
    eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email 
     

  4. #4
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Genau, wenn du irgendwas in der Richtung häufiger gebrauchst, solltest du dir gedanken machen die Grundlagen zu erlernen.

    eregi() ist seit PHP 5.3 nicht mehr zu empfehlen, stattdessen sollte man preg_match() verwenden.

    Du hast doch schon einige Überprüfungen in deinem Konstrukt, hier einfach noch die Überprüfung für die Email mit dem Pattern hinzufügen:

    PHP-Code:

    $pattern 
    'Dein Pattern';
    $Email $_POST['email'];

    if(
    preg_match($pattern$Email)){
      echo 
    "Die Email-adresse ist nicht korrekt!";
    }

    // Ab PHP 5.3 stehen auch diverse Filter zur verfügung:
    if(filter_var($MailFILTER_VALIDATE_EMAIL)) echo 'Korrekte Mail-Validierung'
    Takuto bedankt sich. 
    Die Schweine von heute sind unsere Schnitzel von morgen!

  5. #5
    Takuto Takuto ist offline Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    11
    müsste das dann so stimmen?

    PHP-Code:
    $epattern '^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$';
    $Email $_POST['email'];



    if(
    $_POST["submit"] == "Senden"){
        
        if(
    preg_match($epattern$Email)){
        echo 
    '<p class="error2">E-Mail Adresse ist nicht korrekt!</p>';
        } 
    EDIT: ok so gehts irgendwie nicht... werd ich wohl doch erst etwas rumlesen müssen =/
    Geändert von Takuto (16.12.11 um 16:51 Uhr)
     

  6. #6
    AnnyKey AnnyKey ist offline Rookie
    Registriert seit
    Dec 2011
    Ort
    A, A
    Beiträge
    6
    PHP-Code:
    if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
    {
            echo 
    'Email nicht korrekt!';

     

  7. #7
    Takuto Takuto ist offline Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    11
    Zitat Zitat von AnnyKey Beitrag anzeigen
    PHP-Code:
    if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
    {
            echo 
    'Email nicht korrekt!';

    Danke. Das klappt wunderbar. Und wie könnt ich das jetzt mit der Telefonnummer und dem Geburtsdatum anstellen? dafür gibts ja keine "vrogefertigten" standard befehle ... Müsste demnach ja mit nem Pattern gemacht werden wie ich es oben schon versucht habe.. klappt aber irgendwie nicht so ganz. Kann mir jemand sagen wo der Fehler ist?

    mal angenommen das ist ein regulärer ausdruck für ne telefonnummer oder ein geburtsdatum.
    PHP-Code:
    $epattern '^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$';
    $Email $_POST['email'];


    if(
    $_POST["submit"] == "Senden"){
        
        if(
    preg_match($epattern$Email)){
        echo 
    '<p class="error2">E-Mail Adresse ist nicht korrekt!</p>';
        } 

    EDIT: ok das mit der telefonnummer ist gelöst... nun hab ich ein adneres problem. Und zwar das Datum. Wie kann ich kontrollieren dass es bei den ersten beiden ziffern nur bis 31 gehen darf und beim Monat nur bis 12? und beim Jahr nur bis 2011? hier mein jetziger code:

    PHP-Code:
    if (!preg_match("/^\d{1,2}\.\d{1,2}\.\d{4}$/"$Bday)) 
        {
            echo 
    '<p class="error2">Bitte geben sie ein gültiges Geburtsdatum an</p>';
        } 
    Geändert von Takuto (19.12.11 um 10:38 Uhr)
     

  8. #8
    Avatar von bn
    bn bn ist offline Mitglied Brokat
    Registriert seit
    Oct 2002
    Ort
    Berlin
    Beiträge
    395
    Hallo,

    du kannst nach dem regulären Ausdruck mittels checkdate prüfen, ob das Datum ein gültiges Datum ist. Das Datum kannst du mittels
    PHP-Code:
    list ($tag$monat$jahr) = explode ("."$Bday); 
    in ein Array zerlegen und die entsprechenden Arrayteile dann der Funktion checkdate übergeben:
    PHP-Code:
    if (!preg_match("/^\d{1,2}\.\d{1,2}\.\d{4}$/"$Bday) || !checkdate ($monat$tag$jahr)) 
    Grüße BN
     
    Eine Lösung hätte ich schon, aber sie passt nicht zum Problem.

  9. #9
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    Ansonsten, für Regex-Dinge wärmstens zu empfehlen: http://regexp-tester.mediacix.de/exp/regex/ - Spielwiese für RegExp.

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  10. #10
    Avatar von Sebastian Schmidt
    Sebastian Schmidt Sebastian Schmidt ist offline Mitglied Silber
    Registriert seit
    Dec 2002
    Ort
    Hannover
    Beiträge
    75
    Für Regex kann ich auch diese Seite sehr empfehlen, gibt auch viele Community Lösungen die schon vordefiniert sind und an Fälle denken die man vielleicht noch nicht im Kopf hatte.

    http://gskinner.com/RegExr/
     

Ähnliche Themen

  1. Suche Regulären Ausdruck
    Von Conners im Forum Java
    Antworten: 4
    Letzter Beitrag: 03.03.09, 11:47
  2. Suche regulären Ausdruck
    Von trench140 im Forum PHP
    Antworten: 4
    Letzter Beitrag: 01.09.08, 12:10
  3. Probleme mit dem regulären Ausdruck
    Von Sebastian29 im Forum Java
    Antworten: 3
    Letzter Beitrag: 07.06.07, 14:23
  4. regulären Ausdruck entschlüsseln
    Von nexdh im Forum PHP
    Antworten: 6
    Letzter Beitrag: 16.03.07, 10:36
  5. Suche regulären Ausdruck
    Von Tarta im Forum PHP
    Antworten: 2
    Letzter Beitrag: 14.07.04, 11:52

Stichworte