Autor Zpráva
Alois Marhoul
Profil *
Ahoj

Rád bych sestavil omezující podmínku, pokud bude splněna, zapíši visit, jinak to beru jako návštěvu robota nebo IP, kterou nechci měřit. Bohužel ale nefunguje správně, můžete mi prosím poradit? Předpokládám, že chyba bude v in_array - pokud se totiz omezim pouze na oktrolu agentu a nikoli IP, tak to funguje v pořádku:

if ((!(bool)preg_match('/('.implode('|', $roboti).')/', $agent)) OR (!in_array($ip,$zakazane_ip))):

kde:
$roboti - pole s řetězci identigikujícími roboty, např: $roboti[1]='Googlebot';
$agent = $_SERVER["HTTP_USER_AGENT"];
$ip=$REMOTE_ADDR;
$zakazane_ip - pole zakázaných ip, např: $zakazane_ip[1]='66.249.70.88'; //google.com
temistokles
Profil
if ((!(bool)preg_match('/('.implode('|', $roboti).')/', $agent)) && (!in_array($ip,$zakazane_ip))):


Tvoja podmienka kontrolovala, či sa nenachádza robot v poli robotov ALEBO sa nenachádza jeho ip adresa v blokovaných.

Keď tam dáš AND (tj. &&), tak kontroluješ, že tá IP nie je v blokovaných IPčkách A SÚČASNE nie je agent v robotoch.


Dúfam, že pomôže.

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:

0