Autor Zpráva
Camo
Profil
No nazdar!

Potreboval by som pomôcť so scriptom na overovanie domén.
Stiahol som script (max´sWhios) a po nejakých úpravách to už mám skoro hotové: http://web.php5.sk/overDomenu.php
Problém je s funkciou strpos(), ktorá v tom scripte hĺadá v odpovedi reťazec, podľa ktorého určí, či je doména obsadená alebo nie.
Pri testovaní som narazil na to, že eu domény(ktoré neexistujú) nedokáže zachytiť.
V tom linku sa vypisuje aj odpoveď, aj hodnoty, ktoré vracia strpos(). To dúfam pochopíte... Pri eu sa hľadá reťazec "Status: AVAILABLE" (na konci odpovede). Ale strpos ho nevidí. Napadá ma, že odpoveď prichádza v inom kódovaní, ale to zase nechápem, ako to môže ostatným fungovať.?. Pozeral som aj iné podobné scripty, ale nikde sa kódovanie nerieši...
funkcia:
private function checkDomain($domain,$server,$findText){
    $con = fsockopen($server, 43);
    if (!$con) return false;

    // Send the requested doman name
    fputs($con, $domain."\r\n");

    // Read and store the server response
    $response = ' :';
    while(!feof($con)) {
        $response .= fgets($con,128);
    }

    // Close the connection
    fclose($con);

    $response.='-end';

    //  Moje informácie k ladeniu...
    echo '<div style="padding:15px">$response:<br>'.$response.'</div>';
    echo '<div style="padding:15px">strpos($response,"%") == '.strpos($response, '%').'</div>';
    echo '<div style="padding:15px">strpos($response, "'.$findText.'") == '.strpos($response, $findText).'</div>';
    
     // Check the response stream whether the domain is available
    if (strpos($response, $findText)){
    	   return true;
    }
    else {
        return false;
    }
}
AM_
Profil
nejsem si jistý jak odpověď vypadá, ale pokud je Status: AVAILABLE na začátku (v tom řetězci nic jiného není), je pozice podřetězce 0 a podmínka strpos($response, $findText) se vyhodnotí jako 0 tedy FALSE.
Správně by to mělo být
 if (strpos($response, $findText) !== false){
Camo
Profil
Odpoveď je na tej stránke vieť(ten text hore).
Ale v tomto to neni.
V tej funkcii sa na začiatok odpoveď pridáva " :" takže 0 to nikdy nevráti.
Je to v tej funkcii vidno...
Camo
Profil
Tak už to mám vyriešené. V hľadanom výraze bolo treba použiť tabulátor a nie medzeru.
Uf!
Cobeste
Profil
Camo:
Zdravím,

mohlol by som prosím dostať funkčný script ktorý by overoval aj slovenské domény.
Zatiaľ dostávam stálen len túto chybu. % % whois.sk-nic.sk - whois server for TLD .sk %

Srdečná vďaka

cobeste@hotmail.com
Camo
Profil
Cobeste:
Použil som tento script: http://www.phpf1.com/product/domain-whois-script.html
Ale má zastaralý zoznam odpovedí a adries.
Cobeste
Profil
Camo:
Áno, presne tento skript som použil, len pri sk-doménach mi odpoveď dáva vždy - TAKEN, čokoľvek zadám. Aktuálny zoznam nie je toto - whois.sk-nic.sk?

Diky
DJ Miky
Profil
Můžeš si vyzkoušet, jak vypadají odpovědi na existující a neexistující doménu a podle toho můžeš upravit detekování ve skriptu. Server whois.sk-nic.sk pořád platí.

$ whois -h whois.sk-nic.sk asdfghjkl.sk
%
% whois.sk-nic.sk - whois server for TLD .sk
%


Not found.

$ whois -h whois.sk-nic.sk zoznam.sk
%
% whois.sk-nic.sk - whois server for TLD .sk
%


Domain-name         zoznam.sk
(... informace ...)
Valid-date          2013-01-27
Domain-status       DOM_OK
Camo
Profil
Cobeste:
No treba si pozrieť čo vlastne whois.sk vracia v prípade obsadenej/voľnej domény. V tom scripte máš pole ktoré testuje určité výrazy, z ktorých viaceré sú neni aktuálne. Už si nepamätám či je to aj prípad whios.sk. Adresa je ale správna. Chyba môže byť v použití medzery miesto tabulátora v odpovedi servera. O tom je celé toto vlákno.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: