Autor Zpráva
Ronny
Profil *
Chci si udělat statistiku, kolik lidí mi chodí na web a jaký užívají prohlížeč.
Po příchodu uživatele na web se ověří, zda uživatel už na webu byl - pokud jo,
zjistí se jestli nebyl za nějakou dobu už podruhé - pro testovátní jsem použil
3minuty. pokud ano, nezapíše se jeho prohlížeč a hlas do databáze. V opačném
případě ano, ale narazil jsem na problém, že se mi ty hlasy nechtějí přičítat...
Netuším kde bych se mohl seknout
$prodleva = 180;
$aktualni_cas = time();

$ip = getenv("REMOTE_ADDR"); //zjistime IP
$dotaz = mysql_query("SELECT * FROM prohlizece WHERE
ip='$ip'".mysql_error());
$vysledek = mysql_fetch_array($dotaz);

if ((mysql_num_rows($dotaz) != 0 && ($vysledek["cas"] < $aktualni_cas -
$prodleva)) || mysql_num_rows($dotaz) == 0) {

$ua=$_SERVER['HTTP_USER_AGENT']; // Retezec, ze ktereho se pokusime ziskat
jmeno prohlizece
if(strpos($ua, 'Gecko')){
if( strpos($ua, 'Netscape')){
$browser = 'Netscape';
}elseif(strpos($ua, 'Firefox')){
$browser = 'Firefox';
}else{
$browser = 'Mozilla';
}
}elseif(strpos($ua, 'MSIE')){
if(strpos($ua, 'Opera')){
$browser = 'Opera';
}else{
$browser = 'IE';
}
}elseif(strpos($ua, 'Opera')){
$browser = 'Opera';
}else{
$browser = 'ostatni';
}
$sql = mysql_query("INSERT INTO prohlizece VALUES
('$ip','".time()."','$navstevnost','$browser')".mysql_error());
$sql2 = mysql_query("UPDATE prohlizece SET $browser = $browser + 1,
navstevnost = navstevnost + 1".mysql_error());
}
else {
exit;
}


a jak to mám v tabulce:
CREATE TABLE prohlizece (
`ip` INT NOT NULL ,
`cas` INT NOT NULL ,
`navstevnost` INT NOT NULL ,
`firefox` INT NOT NULL ,
`opera` INT NOT NULL ,
`ie` INT NOT NULL ,
`mozilla` INT NOT NULL ,
`netscape` INT NOT NULL ,
`ostatni` INT NOT NULL
)


Předem děkuji za kladné reakce
vertigo4
Profil
Ronny
zkus se podívat zde: http://www.vertigo4.cz/blog/statistika-vernych-navstevniku
Ronny
Profil *
vertigo4
Vypadá to hezky, některé věci z toho článku určitě využiju, ale z principu mě zajímá proč mi nejede ten můj skript
orava
Profil
chyba je tu
$sql2 = mysql_query("UPDATE prohlizece SET browser = browser + 1,
nightfish
Profil
$sql = mysql_query("INSERT INTO prohlizece VALUES ('$ip','".time()."','$navstevnost','$browser')".mysql_error());
to mysql_error() je tam kvůli čemu? vypisování chybových hlášek v případě neúspěchu dotazu se provádí trochu jinak (viz FAQ v kategorii Databáze na webu)

jinak máš zapnutý error_reporting?


if(strpos($ua, 'Gecko')){
co provede výše uvedená konstrukce, když bude proměnná $ua obsahovat řetězec "Gecko" na svém začátku?
Ronny
Profil *
orava
nic se mi prave nezmeni, hlasy se do DB neprictou...
Ronny
Profil *
nightfish
jo, uz to vidim ze to neni uplne OK, ale i presto by melo zapisovat do DB
Peti
Profil *
nightfish
php dvakrat nerozumim a ten skript bych docela poreboval, tak by me zajimalo, jak ten skript opravit..
nightfish
Profil
Peti
to se spíš zeptej Ronnyho, jak to vyřešil
mám jiné věci na práci, než opravovat cizí zastaralý kód, který nevyužiji
nicméně když pohledáš na webu, najdeš určitě spoustu funkčního kódu (např. http://interval.cz/clanky/statistika-pristupu-v-php-detekce-prohlizece /)

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