formulardaten (email) prüfen

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

  • formulardaten (email) prüfen

    Hi,

    folgendes Problem:

    PHP-Code:

    function checkMail($email){
    return 
    preg_match ("/^[a-z0-9-_]+(\.[a-z0-9_-]+)*@[a-z0-9-]+\.([a-z]{2}
    |com|edu|gov|int|mil|net|org|shop|aero|biz|coop|info|museum|name|pro)
    $/i"
    ,$email);
    }

    <
    form action="login.php" method="post" 
    onSubmit="return checkMail($email)">

    <
    input type="text" name="email" size=10 maxlength=30>
    <
    input type=submit value="Mail schicken" class="button">
    </
    form
    Kann das so klappen?
    (bzw. hat jmd ne idee wie zum klappen zu bringen ist?)

    Die Einzelteile habe ich aus threadid=861.

    Dank´schØn.
    1402: Für einen Wimpernschlag der Zeit herrschte Gerechtigkeit auf Nord- und Ostsee...

  • #2
    ich verwende diese Funktion

    PHP-Code:
    function checkEmailAddress ($eMailAdresse) {
        if (
    eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$"$eMailAdresse$check)) { 
            if(
    getmxrr(substr(strstr($check[0], '@'), 1), $validate_email_temp)) { 
                return 
    true;
                }
            if(
    checkdnsrr(substr(strstr($check[0], '@'), 1),"ANY")){
                return 
    true;
                }
            }
        return 
    false;
        } 

    php-Entwicklung | ebiz-consult.de
    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
    die PHP Marktplatz-Software | ebiz-trader.de

    Kommentar


    • #3
      Kann das so klappen?
      nein, kann es nicht!
      PHP-funktionen sprechen nicht auf 'onsubmit' an - ist ja kein JS!

      du musst die email dort testen, wo die form ankommt: also login.php!
      GNU/LINUX

      Kommentar


      • #4
        Also hier die ganze Idee:

        PHP-Code:

        mail_lib.js(Auszug):

        function chkFormular()
        {
         if(document.Formular.absender.value == "")
          {
           alert("Bitte Ihre Email eingeben!");
           document.Formular.email.select();
           document.Formular.email.focus();
           return false;
          }


        eingabe.php:

        <SCRIPT LANGUAGE="JavaScript" SRC="mail_lib.js"></SCRIPT>

        <form name="Formular" method="post" action="ausgabe.php" 
        onSubmit="return chkFormular()">
        <input type="text" name="email" VALUE="<? echo HTMLSpecialChars
        ($email); ?>
        <input type="submit" value="Abschicken" name="submit">
        </form>

        Das soll in der mail_lib.js untergebracht werden:

        return preg_match ("/^[a-z0-9-_]+(\.[a-z0-9_-]+)*@[a-z0-9-]+\.([a-z]{2}
        |com|edu|gov|int|mil|net|org|shop|aero|biz|coop|info|museum|name|pro)
        $/i",$email);
        Der Sinn der Sache:
        eine eingegebene E-Mail soll vor dem Absenden auf korrektheit überprüft
        werden. Es ist ein Textfeld im linken Frame, welches bei Absenden im right Frame mit der Antwort kommt, je nach dem, ob die E-Mail überhaupt in der Datenbank ist. Damit die User keinen Quatsch eingeben können muss das
        deswegen halt vor dem Absenden gecheckt werden.

        Danke schØn.
        1402: Für einen Wimpernschlag der Zeit herrschte Gerechtigkeit auf Nord- und Ostsee...

        Kommentar


        • #5
          ich verstehe das eig. auch nicht wirklich:
          willst du die email vor dem abesenden via mail() prüfen oder beim absenden des formulars?
          letzteres wäre mit PHP nicht möglich!

          Das soll in der mail_lib.js untergebracht werden:
          wird nix bringen - php ist inkompatibel zu js!!!

          prüf die mail-adresse doch ganz einfach vor dem absenden - ist doch kein problem!

          in javascript könnte das so aussehen:
          Code:
          function EMail(s)
          {
           var a = false;
           var res = false;
           if(typeof(RegExp) == 'function')
           {
            var b = new RegExp('abc');
            if(b.test('abc') == true){a = true;}
            }
          
           if(a == true)
           {
            reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                             '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                             '(\\.)([a-zA-Z]{2,4})$');
            res = (reg.test(s));
           }
           else
           {
            res = (s.search('@') >= 1 &&
                   s.lastIndexOf('.') > s.search('@') &&
                   s.lastIndexOf('.') >= s.length-5)
           }
           return(res);
          }
          GNU/LINUX

          Kommentar


          • #6
            OK.

            also mach ich das jetzt the @berni way...

            =>

            PHP-Code:
            <?
            echo "$email";
            function checkEmailAddress ($email) {
                if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$", $eMailAdresse, $check)) { 
                    if(getmxrr(substr(strstr($check[0], '@'), 1), $validate_email_temp)) { 
                        return true;
                        }
                    if(checkdnsrr(substr(strstr($check[0], '@'), 1),"ANY")){
                        return true;
                }
                    }
                return false;
                }
            if (checkEmailAddress ($email)==true) {
            schick die mail ab;
            } else { ?>
            <a href="javascript:history.back()">Bitte eine gültige E-Mail angeben! Bitte keine Sonderzeichen! 'zurück'</a>
            <? } ?>
            So. Kann das gehen? Oder geht das nur auf einem Betriebssystem?
            Ich habe (zum testen local) Omni auf Bill´s Bugware...
            Sollte das von Billyboy kommen, dass es nicht funzt?
            1402: Für einen Wimpernschlag der Zeit herrschte Gerechtigkeit auf Nord- und Ostsee...

            Kommentar


            • #7
              also mach ich das jetzt the @berni way...
              da haben aber alle, die eine email @museum haben, schlechte karten!
              GNU/LINUX

              Kommentar

              Lädt...
              X