Autor | Zpráva | ||
---|---|---|---|
tomak Profil * |
#1 · Zasláno: 18. 5. 2012, 23:30:12
Dobrý den,
zkouším si napsat vlastní blog a chtěl bych mít přehled kolikrát byl přečtený článek. Jak udělat počítadlo vím(UPDATE clanky SET precteno=precteno+1 WHERE IDclanku=XXX), ale napadá mě otázka... Jak zamezit tomu, aby si započítávalo "přečtení/načtení" třeba od google bota apod? Díky za odpověď. |
||
Darker Profil |
#2 · Zasláno: 18. 5. 2012, 23:51:22
User agent.
Ale opakovaná přečtení (F5) neřešíš? |
||
juriad Profil |
#3 · Zasláno: 18. 5. 2012, 23:52:14
nejjednodušeji asi podle user agent z http hlavičky; závisí jen na libovůli klienta, zda a jakou hodnotu odešle; stoprocentní to nebude nikdy
jejich seznam: http://www.useragentstring.com/pages/useragentstring.php nejspíš budeš chtít ignorovat celý sloupec crawlers |
||
tomak Profil * |
#4 · Zasláno: 19. 5. 2012, 15:13:05
Takže by to mohlo vypadat nějak takhle?
<?php $detekce = $_SERVER['HTTP_USER_AGENT']; $seznam_botu = array("Googlebot", "Holmes", "Jyxobot"); // a podobne if (in_array($detekce, $seznam_botu)) { echo "Jsi bot, tvoje přečtení nebude započítáno!"; } else { echo "Nejsi žádný z botů v seznamu, tudíž započítám přečtení článku."; } ?> Ten refresh stránky se řeší jak prosím? |
||
Jan Tvrdík Profil |
#5 · Zasláno: 19. 5. 2012, 15:58:13
tomak:
Místo in_array je potřeba použít třeba strpos + cyklus.
„Ten refresh stránky se řeší jak prosím?“ Třeba pomocí cookies. |
||
tomak Profil * |
#6 · Zasláno: 20. 5. 2012, 10:31:45
Mohlo by to fungovat nějak takhle? Díky
<?php $boti = 'Googlebot, Jyxobot'; $hledam = 'Google'; //$hledam = $_SERVER['HTTP_USER_AGENT']; $pos = strpos($boti, $hledam); if ($pos === false) { echo "Řetězec '$hledam' nebyl nalezen v řetězci '$boti'"; } else { echo "Řetězec '$hledam' byl nalezen v řetězci '$boti'"; echo " a je na pozici $pos"; } ?> |
||
Časová prodleva: 12 let
|
0