Christoph: Emailvalidierung

Hallo liebe Forumler,

ich habe da so ein schönes Kontaktformular womit ich auch die Emailadresse überprüfen will aber irgendwie klappt das nicht ;(

hier mal ein Auszug aus meinem Code:
<?php
$flag_okay=1;

...

if($HTTP_POST_VARS['email'] == "")
{
 $msg .= "Es wurde keine Emailadresse angegeben!<br>";
 $flag_okay=0;

$email = trim($HTTP_POST_VARS['email']);
 if(!preg_match("/[1]([-_.]?[0-9a-zA-Z])*@0-9a-zA-Z*.[a-zA-Z]{2,}$/i", $email))
 {
  $msg .= "Dies ist keine gültige Emailadresse!<br>";
  $flag_okay=0;
 }
}
if($flag_okay=='1')
{

...
?>
hier dann kommt das html Zeugs...

...
<input type="text" name="email" size="50" maxlength="50" value="<?php if(isset($HTTP_POST_VARS['email'])) print htmlspecialchars($HTTP_POST_VARS["email"]); ?>">
...

Im Grunde genommen juckt es ihn nicht wenn was falsches drin steht, er meckert nur wenn das ganze Emailfeld leer ist, sonst wenn ich auch nur ein Leerzeichen mach geht er sofort in die nächste if über... was ist daran falsch? Wo liegt mein Denkfehler?

Liebe Grüße

Christoph

--
Ich bin ein spezialisz!
(Zitat von VENGA JO)
sh:) fo:) rl:° br:& ie:| mo:) va:) fl:) ss:| ls:< js:|
Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode

  1. 0-9a-zA-Z ↩︎

  1. Hallo zurück,

    weiß ne obs stimmt, hab aber glaub ich einen Fehler in der Eile gesehen:

    <?php
    $flag_okay=1;

    ...

    if($HTTP_POST_VARS['email'] == "")
    {
     $msg .= "Es wurde keine Emailadresse angegeben!<br>";
     $flag_okay=0;

    »»
    }
    else {

    $email = trim($HTTP_POST_VARS['email']);
     if(!preg_match("/[1]([-_.]?[0-9a-zA-Z])*@0-9a-zA-Z*.[a-zA-Z]{2,}$/i", $email))
     {
      $msg .= "Dies ist keine gültige Emailadresse!<br>";
      $flag_okay=0;
     }
    }
    if($flag_okay=='1')
    {

    ...
    ?>
    hier dann kommt das html Zeugs...

    vielleicht funzt das ja... probiers mal

    Gruß Dave


    1. 0-9a-zA-Z ↩︎

  2. Moin,

    if($HTTP_POST_VARS['email'] == "")
    {
    $msg .= "Es wurde keine Emailadresse angegeben!<br>";
    $flag_okay=0;

    Hier sollte bestimmte die schließende geschwungene Klammer hin, oder? Sonst wird der Rest ja nur ausgeführt, wenn die Addresse leer ist

    $email = trim($HTTP_POST_VARS['email']);

    Ansonsten:

    15.9. Wie kann ich die Gültigkeit einer Mailadresse testen?
    http://www.dclp-faq.de/q/q-mail-adresse-testen.html

    --
    Henryk Plötz
    Grüße aus Berlin
    ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
    ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~