Funktion checkdnsrr() wird nicht gefunden

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

  • Funktion checkdnsrr() wird nicht gefunden

    Ich bekomm wenn ich die Funktion checkdnsrr() ausführ folgende Fehlermeldung:
    Fatal error: Call to undefined function: checkdnsrr() in C:\apache\htdocs\ftp\voll\add_guest_comment.php on line 49
    PHP-Code:
    ...
    if(
    preg_match("!^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$!",@$_POST['email']))
    {
        list(
    $user$host) = explode("@"$_POST['email']);
        if (
    checkdnsrr($host))
        {
        
    $email addslashes(@$_POST['email']);
    ... 
    Muss man die Funktion erst in der php.ini zulassen? Wenn ja wo oder liegt der Fehler wo anderst?

    Mfg Markus

  • #2
    du testest doch bestimmt auf ner Win Plattform?
    Falls ja:

    Quelle: PHP.net
    Note: This function is not implemented on Windows platforms. Try the PEAR class Net_DNS.
    Für Rechtschreibfehler übernehme ich keine Haftung!

    Kommentar


    • #3
      OK dann versuch ichs so mal:
      PHP-Code:
      function onlinecheck($hostname)
      {
          
      $fp = @fsockopen($hostname110$errno$errstr4);
          if (
      $fp)
          {
              
      $status true;
              
      fclose($fp);
          }
          else
          {
              
      $status false
          
      }
          return 
      $status;

      So gut wie alle Email Sever laufen doch auf Port 110 oder?

      Mfg Markus

      Kommentar


      • #4
        Original geschrieben von markusschmitt
        So gut wie alle Email Sever laufen doch auf Port 110 oder?
        ja. das pop3 läuft auf 110. aber das smtp, was eine mail von dir erst einmal annehmen kann, ist unter port 25 zu finden.

        davon abgesehen, ist i.d.r der mailserver nicht gleich der domain-name.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Stimmt, Postausgangsserver ist ein SMTP Server auf Port 25, aber wie kann man sowas sonst überprüfen? Auf Webserver sprich Port 80 geht auch nicht. Sonst jemand ne Idee?

          Mfg Markus

          Kommentar


          • #6
            versuche über den dns selber mal an die MX-daten dran zu kommen.... frage mich jetzt aber nciht wie...

            eine andere lösung ist diese... du installierst dir ein linux zum testen. ich denke ja auch , dass dein webserver (online) unter linux läuft. oder?
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              @Abraxax: Da die FKT ja nicht da ist, wirds WIN sein.

              Kommentar


              • #8
                Original geschrieben von TobiaZ
                @Abraxax: Da die FKT ja nicht da ist, wirds WIN sein.
                lokal ja. das ist mir schon klar.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Bin mal auf die Suche gegangen. Also ich werd dann wohl zwei Versionen machen, eine Für Linux mit checkdnsrr() und für Windows Plattformen nehme ich diese nette Funktion:
                  PHP-Code:
                  <?php
                  $hostName 
                  "Email@bla.com";
                  if(
                  myCheckDNSRR($hostName""))
                  {
                      echo 
                  "Die Email Adresse: ".$hostName." ist gültig.";
                  }
                  else
                  {
                      echo 
                  "Die Email Adresse ist ungültig";
                  }

                  function 
                  myCheckDNSRR($hostName$recType '')
                  {
                       if(!empty(
                  $hostName))
                       {
                          if( 
                  $recType == '' $recType "MX";
                          
                  exec("nslookup -type=$recType $hostName"$result);
                          foreach (
                  $result as $line)
                          {
                              if(
                  eregi("^$hostName",$line))
                              {
                                  return 
                  true;
                              }
                          }
                          return 
                  false;
                      }
                      return 
                  false;
                  }
                  ?>
                  Nette Sache

                  Eine bessere Lösung gibts wohl net oder?

                  Mfg Markus

                  Kommentar

                  Lädt...
                  X