Zadejte hledaný výraz...

Kontrola domény

Vladkof
verified
rating uzivatele
(1 hodnocení)
19. 5. 2010 16:41:37
Dobrý den,
potřeboval bych poradit, jak shodnost dvou domén.
Uživatel nastaví do db svou doménu (např. http://www.pepan.cz nebo http://pepan.cz), a já toto porovnávám s http refererem v php... když uživatel přijde z http://podweb.pepan.cz/ tak je to stejná doména a pokračuje se v provádění skriptu - tohle už mám, jen mi dělá problém, když je ta doména např. http://www.pepan.co.uk a uživatel přijde z http://mujweb.pepan.co.uk tak jako doménu vezme jen co.uk, což je špatně, správně by měl vzít pepan.co.uk a porovnat s tím, co je v db...
můj skript:
function flip($string) { // otaceni stringu
for($i=strlen($string);$i>=0;$i--) { $string_flip .= $string; }
return $string_flip;
}
$http_ref = $_SERVER; // $http_ref
echo "zadane: ".$http_ref."
";
$domain = substr($http_ref,7); // oddeli http://
list($domain_cut) = explode("/",$domain); // vezme cast pred /
$domain_flip = flip($domain_cut);
list($dom1) = explode(".",$domain_flip);
$dom23 = substr($domain_cut,0,-strlen($dom1)-1);
$dom23_flip = flip($dom23);
list($dom2) = explode(".",$dom23_flip);
$dom2_flip = flip($dom1.".".$dom2);
echo "domena: ".$dom2_flip."
";
Nevíte někdo, jak to napsat pěkněji a aby to bylo kompletně funkční?
PS: tohle je jen testovací skript, proto tu není db a ostatní..
19. 5. 2010 16:41:37
https://webtrh.cz/diskuse/kontrola-domeny#reply506496
aaaaaaaaaa...
neni jednodussi udelat explode adresy (po odstraneni :// a obsahu za prvnim lomitkem) dle tecek a s tim polem co ti vznikne, porovnat, to co potrebujes porovnavat?
19. 5. 2010 17:58:13
https://webtrh.cz/diskuse/kontrola-domeny#reply506495
Tywe, drsny kod :)
Ja bych to videl presne tak jak psal Mallox .... z vysledneho pole si pak vytahnes a zpracujes co potrebujes
$http_ref = $_SERVER;
$tmp=explode('/',$http_ref);
$data=explode('.',$tmp);
print_r ($data);
19. 5. 2010 18:05:30
https://webtrh.cz/diskuse/kontrola-domeny#reply506494
hm
verified
rating uzivatele
(20 hodnocení)
19. 5. 2010 18:28:15
takhle to dopada kdyz nekdo nepouziva regularni vyrazy nebo ason teda ten explode i kdyz to taky neni zrovna hezky :))
19. 5. 2010 18:28:15
https://webtrh.cz/diskuse/kontrola-domeny#reply506493
Napsal AlesiBoss;513672
takhle to dopada kdyz nekdo nepouziva regularni vyrazy nebo ason teda ten explode i kdyz to taky neni zrovna hezky :))
Vzhledem k Vladkof-ovym vedomostem si myslim ze explode bude pro nej nejlepe pochopitelne... ale klidne mu to muzes zkratit na jeden radek ;)
19. 5. 2010 18:31:16
https://webtrh.cz/diskuse/kontrola-domeny#reply506492
Vladkof
verified
rating uzivatele
(1 hodnocení)
19. 5. 2010 19:40:51
no, abych rekl pravdu tak jste mi moc nepomohli ;)
zkusim teda svou otazku polozit jinak...
1. priklad:
uzivatel prijde z http://webik.seznam.cz/, jak poznam ze nalezi do zadané domény (zadaná může být bud http://www.seznam.cz nebo http://seznam.cz)?
2. priklad:
uzivatel prijde z http://webik.seznam.co.uk/, jak poznam ze nalezi do zadané domény (zadaná může být bud http://www.seznam.co.uk nebo http://seznam.co.uk)?
- muj skrip funguje jen na prvni priklad, ale jakmile by uzivatel prisel z http://www.seznam.co.uk/, tak skript vezme jako "hlavni" domenu jen co.uk, coz je spatne
klidne muzete pouzit i regulerni vyrazy, rad se necemu novemu priucim :)
19. 5. 2010 19:40:51
https://webtrh.cz/diskuse/kontrola-domeny#reply506491
Coudy
verified
rating uzivatele
(2 hodnocení)
19. 5. 2010 20:53:12
Tímhle problémem jsem se zabýval celkem dlouho. A ať už tu první část rozdělení URL na domény uděláš pomocí SUBSTR, EXPLODE, nebo regulárními výrazy, budeš muset na konci vytvořit několik vyjímek pro ty zvláštní TLD, které se skládají vlastně ze 2 domén (1. a 2. řádu).
Jiná možnost jak to 100% poznat opravdu není!
Pěkný seznam "dvojřádových TLD" je například zde: https://subreg.cz/cz/login/pricelist/
Třeba taková TLD doména "de.com" není žádná německá TLD, ale obyčejná generická COM, s názvem DE, na které její majitel (což může být německej NIC, nekoukal jsem se do WHOIS) umožňuje vytvářet další subdomény 3. řádu. Na venek to pak může vypadat, že se jedná o novou TLD ale není to tak.
Tvoje zmiňované domény .UK jsou už od počátku spravované nějakou firmou či úřadem ve Velké británii, která umožnila registraci domény 2. úrovně pod .UK pouze několika úřadům a vědeckým pracovištím. Normální smrtelnící si pak registrují domény 3. řádu na .CO.UK. Tenhle systém ale funguje (pokud vím) už od počátku, takže je naprosto zaběhlej a všichni pojali doménu CO.UK za standardní britskou TLD.
Pěkným příkladem je web: http://cz.tl/
kde si nějaký maník regnul doménu 2. řádu CZ na doméně 1. řádu TL a nyní nabízí zdarma "registraci vlastní domény" XXX.CZ.TL. Přitom se jedná pouze o vytvoření domény 3. řádu a vytvořená doména a web na ní by byl prakticky stále vlastněn majitelem domény CZ.TL. Je to naprosto ten samí případ jako s CO.UK, ale tam se o to stará důvěryhodný úřad, kdežto o CZ.TL nějaký neznámí člověk, který pak doménu CZ.TL může kdykoliv prodat/zrušit a vy o své "domény zdarma" příjdete - což se u CO.UK jen tak nestane.
Kdyby mi někdo prodal za pěknou sumu generickou doménu CZ.COM. Tak bych si taky založil vlastní firmu na registraci domén něco.CZ.COM a prodával bych je třeba po 100 Kč. Já sám bych pak pouze platil ročně 160 Kč za doménu 2. řádu CZ.COM :-)
Toť vše...
19. 5. 2010 20:53:12
https://webtrh.cz/diskuse/kontrola-domeny#reply506490
Petr Vacek
verified
rating uzivatele
20. 5. 2010 19:01:57
a co použít funkci k tomu určenou? A tím myslím funkci parse_url : http://php.net/manual/en/function.parse-url.php . Ta ti vrátí hostname, kterou už jenom rozdělíš podle tečky funkcí explode.
$poleDomen = explode(".", parse_url($_SERVER, PHP_URL_HOST));
20. 5. 2010 19:01:57
https://webtrh.cz/diskuse/kontrola-domeny#reply506489
Napsal vacek;514183
Ta ti vrátí hostname, kterou už jenom rozdělíš podle tečky funkcí explode.
Jak jiz napsal Coudy, na TLD se bude muset udelat vyjimka .... at uz si to rozsekas jak chces
20. 5. 2010 20:07:03
https://webtrh.cz/diskuse/kontrola-domeny#reply506488
McFly
verified
rating uzivatele
(4 hodnocení)
18. 6. 2010 12:19:21
A co nějak takhle? (pozor, za předpokladu, že doména je bez www!)
$referer = 'http://mujweb.pepan.co.uk';
$domena = 'pepan.co.uk'; // vzdy BEZ www!!!
if(domainCheck($domena, $referer)) echo 'Referer OK!';
else echo 'Referer chybny!';
function domainCheck($dom, $ref) {
if(substr(parse_url($ref, PHP_URL_HOST), -strlen($dom)) == $dom) return true;
else return false;
}
?>
18. 6. 2010 12:19:21
https://webtrh.cz/diskuse/kontrola-domeny#reply506487
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
18. 6. 2010 17:53:55
echo $_SERVER = "http://fasd.pepan.co.uk";
$domain_pattern = preg_quote ( "pepan.co.uk" );
if ( !preg_match ( "%https?://(w+.)?$domain_pattern(?:/|$)%i", $_SERVER ) )
die ( "Spatny referrer!" );
snad tam nemam nic spatne, ted jsem vstaval...
18. 6. 2010 17:53:55
https://webtrh.cz/diskuse/kontrola-domeny#reply506486
Pro odpověď se přihlašte.
Přihlásit