Funktion checkdnsrr() wird nicht gefunden

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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!

    Comment


    • #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

      Comment


      • #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 |


        Comment


        • #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

          Comment


          • #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 |


            Comment


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

              Comment


              • #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 |


                Comment


                • #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

                  Comment

                  Working...
                  X