Newsletter Skript; ungültige Email

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

  • Newsletter Skript; ungültige Email

    Hallo zusammen,

    ich hab ein Problem mit einem Newsletter.

    Er ist von artmedic und funktioniert soweit einwandfrei, bis auf ein kleines Problem mit der Emailüberprüfung.

    Egal welche Email ich eingebe, es kommt immer die Meldung das es eine ungültige Adresse ist.

    Ich hab mal den Quelltext des Skripts eingefügt. Vielleicht findet jemand den Fehler.

    Es wird aus einem Formular in html das Feld="email" an das PHP-Skript übergeben.

    Nachdem mich der Moderator ermahnte nur die Stelle im Quelltext zu posten die für das Problem relevant ist, hab ich das versucht.

    Es müsste in diesem String liegen.

    Quelltext:
    PHP-Code:

    if(!eregi("^[a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$"$email))
    $datenfopen ("$meldungtemplate","r");
    $meldung fread($daten,filesize($meldungtemplate));
    $meldung =  ereg_replace("%meldung%","$emailfalsch",$meldung);
    $meldung =  ereg_replace("%anrede%","$gruss $name",$meldung);
    fclose ($daten);
    print 
    $meldung;
    exit;} 
    EDIT:
    [php]-tags eingefügt. wahsaga
    Zuletzt geändert von paulianton; 08.01.2004, 10:45.

  • #2
    Re: Newsletter Skript; ungültige Email

    1. bitte benutze die [php]-tags zur codeformatierung, wenn du hier php-code postest.

    2. glaubst du wirklich, dass jemand lust hat, sich durch ein ellenlanges script zu wühlen?
    es ist deine aufgabe, vorher die für das problem relevanten code-teile zu ermitteln, und dann nur diese zu posten.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Wolln mal nicht zu streng sein, bist ja erste mal hier! Wobei doe Punkte für die Zukunft ja gelten sollten

      Vorab:
      1) artmedic ist schei*e!!!
      2) das script ist schlecht, aber eben kostenlos. Da darf man sich nicht wundern, dass es nicht das tut, was man erwartet. Immerhin funktioniert es bei dir. Tut es micht Sicherheit nicht bei jedem.
      3) Also die Prüfung ist schon recht(!) gut. Und funktioniert auch wie sie soll, denke ich.

      Dein Problem:
      Als korrekte E-Mail adresse siehst DU webmaster@test.de an (weil es die gibt. asdasdfsd@adfadsfdsfdaf.de empfindest DU als falsch, ist aber syntaktisch richtig. Vondaher lässt das Script es durch. Gibst du jetzt "jhadfdfasdfdfdf.de" ein, wirst du eine Fehlermeldung bekommen.

      Kommentar


      • #4
        asdasdfsd@adfadsfdsfdaf.de empfindest DU als falsch, ist aber syntaktisch richtig
        Das ist genau das Problem, aber auch hier sagt das Skript das es eine ungültige Emailadresse ist.

        Schaut mal bitte unter www.bodenmaiser-hof.de
        und überzeugt euch selbst.

        Komisch

        Kommentar


        • #5
          Sorry, hatte ich beim Überfliegen falsch gelesen.

          habs grad mal testweise nachgestellt, find den fehler da auf anhieb auch nicht.

          eregi() ist für sowas ohnehin schlecht geeignet. (womit wir wieder beim Thema artmedic wären...

          Kommentar


          • #6
            Re: Newsletter Skript; ungültige Email

            ok, mach mal als allererstes, noch vor
            PHP-Code:
            if(!eregi("^[a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+.)+([a-zA-Z]{2,4})$"$email)) 
            eine testausgabe in der form
            PHP-Code:
            echo "<br>#".nl2br($email)."#<br>"
            ergebnis?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ergebnis:
              Nichts!!!

              Ich habs so gemacht.....

              PHP-Code:
              </head>

              <?
              require("include.php");
              $meldungtemplate = "meldungtemplate.htm";
              $email = strtolower($email);
              $email = stripslashes($email);
              //email löschen
              if ($mail == 2)
              {
              if ($email==""){$daten= fopen ("$meldungtemplate","r");
              $meldung = fread($daten,filesize($meldungtemplate));
              $meldung =  ereg_replace("%meldung%","$emailfehlt",$meldung);
              $meldung =  ereg_replace("%anrede%","$gruss $name",$meldung);
              fclose ($daten);
              print $meldung;
              exit;}

              echo "<br>#".nl2br($email)."#<br>";
              if(!eregi("^[a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $email)){ $daten= fopen ("$meldungtemplate","r");
              $meldung = fread($daten,filesize($meldungtemplate));
              $meldung =  ereg_replace("%meldung%","$emailfalsch",$meldung);
              $meldung =  ereg_replace("%anrede%","$gruss $name",$meldung);
              fclose ($daten);
              print $meldung;
              exit;}

              Kommentar


              • #8
                wunderts?

                PHP-Code:
                exit;}

                echo 
                "<br>#".nl2br($email)."#<br>"

                Kommentar


                • #9
                  OK,OK, tut mir leid,....

                  also ausgegeben wir genau die Emailadresse die ich eigegeben habe.

                  kannst du dir selber noch anschauen, ist noch so am Server.

                  www.bodenmaiser-hof.de/newsletter.htm

                  Kommentar


                  • #10
                    Re: Re: Newsletter Skript; ungültige Email

                    ok, hab's getestet mit blah@test.com, erzeugt einen fehler.


                    dann lasst uns doch mal den RegEx analysieren (bin da zwar auch nicht der grösste experte drin, aber vielleicht fällt ja noch jemand anderem etwas auf)

                    ^[a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+.)+([a-zA-Z]{2,4})$

                    ok, direkt am stringanfang 1 oder beliebig viele zeichen aus [a-zA-Z0-9-] - ja, das erfüllt mein blah@test.com

                    (.[_a-zA-Z0-9-]+)*

                    hmm, was ist hier mit dem punkt, müsste der nicht maskiert werden?
                    (nicht zu maskieren bräuchte man ihn AFAIK dann, wenn der innerhalb der zeichenklasse [ ] stehen würde, er ist aber davor.)
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar

                    Lädt...
                    X