Autor Zpráva
tomak
Profil *
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
User agent.
Ale opakovaná přečtení (F5) neřešíš?
juriad
Profil
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 *
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
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 *
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";
}

?> 

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: