1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
560
560
EMPFEHLEN
-
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:
hoffe mir kann jemand helfen.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ü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"];
Vielen dank im voraus.
-
16.12.11 14:15 #2
In deinen if(empty..... Block.
Die Schweine von heute sind unsere Schnitzel von morgen!
-
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 )
-
16.12.11 15:53 #4
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($Mail, FILTER_VALIDATE_EMAIL)) echo 'Korrekte Mail-Validierung';
Die Schweine von heute sind unsere Schnitzel von morgen!
-
müsste das dann so stimmen?
EDIT: ok so gehts irgendwie nicht... werd ich wohl doch erst etwas rumlesen müssen =/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>';
}
Geändert von Takuto (16.12.11 um 16:51 Uhr)
-
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)
-
Hallo,
du kannst nach dem regulären Ausdruck mittels checkdate prüfen, ob das Datum ein gültiges Datum ist. Das Datum kannst du mittelsin ein Array zerlegen und die entsprechenden Arrayteile dann der Funktion checkdate übergeben:PHP-Code:list ($tag, $monat, $jahr) = explode (".", $Bday);
Grüße BNPHP-Code:if (!preg_match("/^\d{1,2}\.\d{1,2}\.\d{4}$/", $Bday) || !checkdate ($monat, $tag, $jahr))
Eine Lösung hätte ich schon, aber sie passt nicht zum Problem.
-
20.12.11 00:42 #9
Ansonsten, für Regex-Dinge wärmstens zu empfehlen: http://regexp-tester.mediacix.de/exp/regex/ - Spielwiese für RegExp.
mfg chmeeMein 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 <-
-
25.12.11 14:18 #10
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
-
Suche Regulären Ausdruck
Von Conners im Forum JavaAntworten: 4Letzter Beitrag: 03.03.09, 11:47 -
Suche regulären Ausdruck
Von trench140 im Forum PHPAntworten: 4Letzter Beitrag: 01.09.08, 12:10 -
Probleme mit dem regulären Ausdruck
Von Sebastian29 im Forum JavaAntworten: 3Letzter Beitrag: 07.06.07, 14:23 -
regulären Ausdruck entschlüsseln
Von nexdh im Forum PHPAntworten: 6Letzter Beitrag: 16.03.07, 10:36 -
Suche regulären Ausdruck
Von Tarta im Forum PHPAntworten: 2Letzter Beitrag: 14.07.04, 11:52





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren