E-Mail-Check

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

  • E-Mail-Check

    Hi,

    also ich habe ein Problem mit folgendem Script:

    Das Script soll alle E-Mail-Adressen aus einer Datenbank einlesen, und diese mit der eingebauten Funktion auf bestehen prüfen.
    Dazu nimmt er Kontakt mit dem E-Mail-Server auf und fragt nach, ob er denn E-Mails für diese Adresse annimmt. Diese Funktion klappt einzeln auch prima. Jetzt habe ich sie aber in eine While-Schleife gepackt, und sie soll jetzt alle E-Mail-Addressen aus der DB überprüfen und die, die nicht stimmen auflisten.

    Jedoch bekomme ich folgende Fehlermeldung:

    Fatal error: Cannot redeclare checkemail() (previously declared in /home/***.losespace.de/www/email/test.php:19) in /home/***.losespace.de/www/email/test.php on line 19
    das heißt, das die Definition der funktion wohl einen Fehler herbeiführt, oder?

    Ich kann aber den Fehler nicht finden. Hier das Script:

    PHP-Code:
    <?php

    $conn
    =mysql_connect("localhost","*","*");
    mysql_select_db("datenbank"$conn);

    $res=mysql_query("SELECT email FROM members");


    $anzahl mysql_num_rows($res);

    $i 0;
    while(
    $i <  $anzahl){

    $result=mysql_result($res$i);

    function 
    CheckEmail $email )
    {
      list (
    $user,$domain) = split("@"$email2);
      
    getmxrr($domain$mxlist);
      
    $return = array(false,"Kein Mailer.");
      foreach (
    $mxlist as $mx)
      {
        
    $fp fsockopen($mx25$errno$errstr20);
        if (!
    $fp) continue; //nächster MX_Eintrag
        
    socket_set_blocking($fpfalse);
        
    $s 0;  $c 0;
        
    $out "";
        do    {  
    // Auf Antwort warten
          
    $out fgets $fp2500 );
          if (
    ereg("^220"$out)) {
        
    $s 0;
        
    $out "";
        
    $c++;
          }    else
          if ((
    $c>0) && ($out=="")) break;
          else 
    $s++;
          if (
    $s==9999) break;
        } while (
    $out=="");
        
    socket_set_blocking ($fptrue);
        
    fputs ($fp"HELO raubkatze\n" );
        
    $out fgets($fp3000);
        
    fputs ($fp"MAIL FROM: [email]info@web.de[/email]\n" );
        
    $out fgets($fp3000);
        
    fputs($fp"RCPT TO: $email\n");
        
    $out fgets($fp3000);
        if (
    ereg("^250"$out)) $return = array(true,$out);
        else 
    $return = array(false,$out);
        
    fputs ($fp"quit\n");
        
    fclose($fp);
        if (
    $return[0]) break;
       }
       return 
    $return;
    }
    $ret CheckEMail($result);


    if(
    $ret[0] == 1){}
    else{
    echo 
    "$result";}





    $i++;

    }

    ?>

  • #2
    mach die funktion vor die schleife
    PHP-Code:
    function check()
    {
    }

    while ()
    {
      
    check();

    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      dankeschön das hat geholfen!

      Aber warum ist das so?

      Kommentar


      • #4
        Weil du eine Funtkion erst deklarierst um sie später wieder verwenden zu
        können.
        Wenn du dies in der Schleife machst deklarierst du sie jedesmal von neuem
        und das geht nicht.

        Kommentar


        • #5
          man,

          its written there. u cannot redeclare any function.
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            but therefor user has to support english

            Kommentar


            • #7
              deswegen machen manche
              PHP-Code:
              if(!function_exists('foo')) { function foo($bar) { return $bar; } } 


              An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

              Kommentar

              Lädt...
              X