Ankündigung

Einklappen
Keine Ankündigung bisher.

Code für Domain Suche

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

  • Code für Domain Suche

    Hallo an alle,

    ich habe hier einen Code der Sucht eine Domain, meldet ob diese frei ist oder nicht und dies kann über eine session weiter in einer Bestellung übernommen.

    Doch leider funktioniert der Code nicht mehr, er trägt weder die session ein noch geht die Suche.
    Kann mir jemand vielleicht helfen, das so anzupassen das es wieder so geht wie es soll? Ich hatte das schon lange.

    PHP-Code:
    <?php
    session_start
    ();
    $domain="";
    ?>
    PHP-Code:
    <?php
    $nic 
    = array(
            
    'de' => 'whois.nic.de||free',
            
    'org' => 'whois.publicinterestregistry.net||NOT FOUND',
            
    'com' => 'whois.crsnic.net||No match for',
            
    'net' => 'whois.crsnic.net||No match for',
            
    'info' => 'whois.afilias.net||NOT FOUND',
            
    'eu' => 'whois.eu||AVAILABLE',
    );
    // Fehlermeldung, wenn die Eingabe der Domain fehlerhaft ist
    $WrongDomain ' ';
    // Fehlermledung wenn diese TopLevel Domain nicht überprüft werden soll
    $DontSellDomain 'Bitte entschuldigen Sie, aber wir vertreiben diese TopLevelDomain nicht. Bitte entscheiden Sie sich für eine: .de, .org, .net, .info oder .com Domain.';
    // Fehlermeldung wenn der Server der NIC Vergabestelle nicht erreichbar ist
    $ServerNotReachable 'Der Server der Vergabestelle ist aktuell nicht erreichbar, bitte versuchen Sie es später noch einmal.';
    /*
     * $_POST['domain'] ist die Variable über die die Domain die überprüft werden soll übergeben wird
     * strtolower() wandelt den kompletten String in Kleinbuchstaben um
     * trim() entfernt Leerzeichen am Anfang und Ende des Strings
     * strip_tags() entfernt HTML Tags
     *
     * Der geänderte und bearbeitete String wird in der Variable $domain gesichert
     *
     */
    $domain         strip_tags(trim(strtolower($_POST['domain'])));

    // überprüfen das die Variable $domain nicht leer ist ansonsten wird eine Fehlermeldung ausgegeben
    if( !empty($domain) ){
            
    // Aus der $domain Variable werden die ggf. vom Nutzer mit eingegebenen http:// und www. Teile entfernt
            
    $domain str_replace('http://'''$domain);
            
    $domain str_replace('www.'''$domain);

            
    // Die Domain wird anhand des Punktes in zwei Teile geteilt DomainName.TopLevel
            
    $domain explode('.'$domain);
            
    $domainCount count($domain);

            
    // Danach wird überprüft ob die Domain auch wirklich nur aus zwei Teilen besteht,
            // damit z.B. keine Subdomains eingegeben werden Sub.DomainName.TopLevel
            
    if($domainCount 2){ die($WrongDomain); }

            
    // überprüfung ob die eingegebene TLD in unserem Array ($nic) enthalten ist und überprüft werden kann
            
    if( empty($nic[$domain[1]]) ){ die($DontSellDomain); }else{
                    
    // Wenn der Array Teil für die entsprechende TLD vorhanden ist wird dieser anhand des || gesplittet
                    
    $myNic explode('||'$nic[$domain[1]]);
                    
    // $NicServer enthält die Server URL
                    
    $NicServer $myNic[0];
                    
    // $NicFreeResponse enthält den Rückgabewert wenn die Domain frei ist
                    
    $NicFreeResponse $myNic[1];
            }

            
    // Checken ob der entsprechende whois Server erreichbar ist und dann Verbindung aufbauen
            
    if ( !($fp fsockopen($NicServer43)) ) {
                    
    // Wenn nicht wird diese Fehlermeldung ausgegeben
                    
    die($ServerNotReachable);
            }

            
    // Dem Server den zu überprüfenden Domainnamen übergeben
            
    fwrite($fp$domain[0].'.'.$domain[1]."\r\n");
            
    $result '';

            
    // Antwort vom whois Server holen
            
    while (!feof($fp)) {
                    
    $result .= fread($fp1024);
            }

            
    // Verbindung zum Server wieder trennen
            
    fclose($fp);

            
    // Die Antwort des whois Servers mit dem Rückgabewert aus dem Array vergleichen
            
    if( strstr($result$NicFreeResponse) ){
                    
    // Ist der Vergleich erfolgreich, so wird die Nachricht zurückgegeben
                   
    $_SESSION['domain'] = $domain[0].'.'.$domain[1]; $_SESSION['frei']=1;


            }else{
                    
    // Ist die Domain bereits vergeben, erscheint diese Fehlermeldung
                  
    $_SESSION['domain'] = $domain[0].'.'.$domain[1]; $_SESSION['frei']=0;


            }
    }else{
            
    // Fehlermeldung wenn der Inhalt der Variable $domain leer ist
            
    echo $WrongDomain;
    }
    ?>
    HTML-Code:
    <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="POST"
    enctype="multipart/form-data" accept-charset="<?php echo CHARSET; ?>">
    
    <p><br />www. <input name="domain" id="domain" size="13" value=" ">
    <input type="submit" value="DOMAIN SUCHEN" class="domain"></p>
    <p class="both">
    <span class="klein"> Auf folgende Endungen kann geprüft werden: .de, .com, .net, .org, .info, .eu</span></p>
    </form>
    PHP-Code:
    <?php
    if(isset($_SESSION['domain'])) {
    $domain =$_SESSION['domain'];
    if(
    $_SESSION['frei']) {
    echo 
    '<p>Die Domain <span class="fett">'.$domain.'</span> ist frei. <br>Wir k&ouml;nnen die Domain f&uuml;r Sie registrieren.</p>';
    }
    else
    {
    echo 
    '<p>Die Domain '.$domain.' ist <span class="fett">nicht</span> mehr frei.</p>';
    }
    }
    ?>
    Danke für die Hilfe
    Und liebe Grüße
    Andre
    CO Webdesign
    CO Webservice bei Facebook?

  • #2
    Ich habe mir den Code nicht genauer angesehen, könnte mir aber vorstellen, dass das mit den neuen Datenschutzrichtlinien zu tun hat.
    Registrare, wie die DENIC bspw. geben auch online kaum noch Auskunft über Inhaber-Daten.
    PHProcks! » Tutorials

    Kommentar


    • #3
      Hallo,

      danke für die Antwort. Ich habe inzwischen den Fehler gefunden. Es lag an einer Einstellung bei der .htaccess Datei. Aber dafür habe ich jetzt ein anderes Problem mit dem Code.

      Ich setzte hier eine Session um die eingetragene / gefundene Domain in die Bestellung zu übernehmen. Auch wird sie benutzt um anzuzeigen ob die Domain noch frei oder belegt ist.

      PHP-Code:
      <?php
      session_start
      ();
      $domain="";
      ?>
      PHP-Code:
      <?php
      if(isset($_SESSION['domain'])) {
      $domain =$_SESSION['domain'];
      if(
      $_SESSION['frei']) {
      echo 
      '<p>Die Domain <span class="fett">'.$domain.'</span> ist frei. <br>Wir k&ouml;nnen die Domain f&uuml;r Sie registrieren.</p>';
      }
      else
      {
      echo 
      '<p>Die Domain '.$domain.' ist <span class="fett">nicht</span> mehr frei.</p>';
      }
      }
      ?>
      Soweit funktioniert das auch alles. Aber die Domain wird nicht auf der Bestellung übernommen. Auf meiner anderen Seite funktioniert alles wie es soll. Dies ist aber nur eine Testeinstellung und sollte nur zeigen ob ich einen Fehler erkenn könnte.



      PHP-Code:
      <?php
      session_start
      ();
      // Übertragene SESSION auslesen
      $domain $_SESSION['domain'];
      // SESSION löschen, da sie nicht mehr benötigt wird
      session_destroy();
      ?>
      Ich nehme an, dass vielleicht was mit der SSL Einstellung zu tun hat, weiß es aber nicht. Wie kann das wieder ändern? Kann mir jemand dabei helfen?

      Liebe Grüße
      Andre
      Zuletzt geändert von Arne Drews; 13.11.2018, 10:02. Grund: MOD: Link entfernt
      CO Webdesign
      CO Webservice bei Facebook?

      Kommentar


      • #4
        Man sieht hier ja nur einen Code-Ausschnitt, aber wo wird denn $_SESSION['domain'] initial gesetzt?

        PHProcks! » Tutorials

        Kommentar


        • #5
          Hallo,

          das ist der entsprechende Abschnitt

          PHP-Code:
          // Die Antwort des whois Servers mit dem Rückgabewert aus dem Array vergleichen
                  
          if( strstr($result$NicFreeResponse) ){
                          
          // Ist der Vergleich erfolgreich, so wird die Nachricht zurückgegeben
                         
          $_SESSION['domain'] = $domain[0].'.'.$domain[1]; $_SESSION['frei']=1;


                  }else{
                          
          // Ist die Domain bereits vergeben, erscheint diese Fehlermeldung
                        
          $_SESSION['domain'] = $domain[0].'.'.$domain[1]; $_SESSION['frei']=0
          welcher die Session nutzt.

          Wie schon beschrieben steht derselbe Code in der anderen Seite und dort geht es. Auch offline im XAMPP geht es auf der einen und anderen Seite. Nur hier nicht. Könnte das auch sein, dass bei der Einstellung was "zerschossen" wurde, und dass ich den in einer neuen Seite "nur" neu einstellen müsste?

          Liebe Grüße
          Andre
          CO Webdesign
          CO Webservice bei Facebook?

          Kommentar

          Google Werbung unten

          Einklappen

          Die neuesten Beiträge im Forum

          Einklappen

          Lädt...
          X