Antworten auf deine Fragen:
Neues Thema erstellen

"E-Mail Fehlermeldung" in Kontaktformular

Designerist

Aktives Mitglied

Liebe php-Profis
Ich habe ein Kontaktformular gemacht, das tip top funktioniert. Nun möchte ich zusätzlich, dass die E-Mail Adresse, wenn sie ohne @ oder ohne . eingegeben wird, als Fehler angezeigt wird: "Bitte E-Mail Adresse überprüfen.

Im eigentlichen Formular steht das (damit der Text bestehen bleibt, wenn die Fehlermeldung kommt:
<label>E-Mail *
<input class="feld" name="Email" type="text" id="Email"
onfocus="this.className='currentField'" onblur="this.className='normalformtext'"
value="<?php
if (isset($_POST['Email']) && !is_array($_POST['Email'])) {
echo htmlspecialchars($_POST['Email']);
}
?>" /></label>

Im Abschnitt ifelse das:
if (isset ($_POST['Email']) && !is_array($_POST['Email']) && $_POST['Email'] != '') {
$ausgabe .= 'Email: ' . htmlspecialchars($_POST['Email']) . "\n";
} else {
$fehler .= 'Bitte E-Mail Adresse eingeben<br />';
}

Vielen Dank für Hilfe, Grüsse, Designerist
 

GrafiKman

Aktives Mitglied

AW: "E-Mail Fehlermeldung" in Kontaktformular

function checkEmail($email) {
if (!eregi(
"^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
return false;
}
return true;
}
 

ChrisvA

Aktives Mitglied

AW: "E-Mail Fehlermeldung" in Kontaktformular

Im Regulären Ausdruck ist ein kleiner Fehler drinnen und zwar gibt es neuerdings auch .info E-Mailadressen, darum sollte man bis zu 4 Zeichen nach dem letzten Punkt erlauben. ...[a-z]{2,4}...
 

Designerist

Aktives Mitglied

AW: "E-Mail Fehlermeldung" in Kontaktformular

Vielen herzlichen Dank euch beiden für die superschnelle, Top-Hilfe!
Grüsse, Designerist
 

Chriss1987

me.drinkCoffee();

AW: "E-Mail Fehlermeldung" in Kontaktformular

Im Regulären Ausdruck ist ein kleiner Fehler drinnen und zwar gibt es neuerdings auch .info E-Mailadressen, darum sollte man bis zu 4 Zeichen nach dem letzten Punkt erlauben. ...[a-z]{2,4}...

Hi,

das ist nicht so ganz richtig mit den vier Zeichen, es gibt z.B. auch die TLD ".museum", nur zur Info! ;)

Schöne Grüße aus dem Sauerland!
Chriss
 
G

Gelöschtes Mitglied 290216

Guest

AW: "E-Mail Fehlermeldung" in Kontaktformular

Es wurde schon oft versucht, eMail Kontrollfunktionen in nur einem Befehl zu machen, ist aber nicht nicht wirklich möglich, nur eine Grobe kontrolle, die oftmals schon ausreichend sein sollte.
Wikipedia ist oft eine Nette Hilfe dafür: E-Mail-Adresse

Erlaubte Zeichen
A-Za-z0-9.!#$%&'*+-/=?^_`{|}~.

"Alle Zeichen oberhalb des ASCII-Codes 127, also auch Umlaute, sind generell verboten."

64 Zeichen vor dem @

1. Zeichen der Domain muss ein Buchstabe des Doaminparts muss ein Buchstabe, Zahl oder ein Bindestrich "-" sein.

Die Maximale lenge der Domain ist 255

Hier ist dann zum Beispiel eine Möglichkeit:
Code:
function checkEmail($email) {
  if(preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])
  ↪*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/",
               $email)){
    list($username,$domain)=split('@',$email);
    if(!checkdnsrr($domain,'MX')) {
      return false;
    }
    return true;
  }
  return false;
}


Hier ist auch eine Möglichkeit von ILoveJackDaniel's
Code:
function check_email_address($email) {
  // First, we check that there's one @ symbol, 
  // and that the lengths are right.
  if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
    // Email invalid because wrong number of characters 
    // in one section or wrong number of @ symbols.
    return false;
  }
  // Split it into sections to make life easier
  $email_array = explode("@", $email);
  $local_array = explode(".", $email_array[0]);
  for ($i = 0; $i < sizeof($local_array); $i++) {
    if
(!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&
↪'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$",
$local_array[$i])) {
      return false;
    }
  }
  // Check if domain is IP. If not, 
  // it should be valid domain name
  if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
    $domain_array = explode(".", $email_array[1]);
    if (sizeof($domain_array) < 2) {
        return false; // Not enough parts to domain
    }
    for ($i = 0; $i < sizeof($domain_array); $i++) {
      if
(!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|
↪([A-Za-z0-9]+))$",
$domain_array[$i])) {
        return false;
      }
    }
  }
  return true;
}

Mehr Infos gibts auf Linux Journal - Validate an E-Mail Address with PHP, the Right Way
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben