Článek: Statistika přístupů v PHP – koláčové grafy
jednu (dve??) chyby:
<? a nie <?php a vyzadovanie register_globals = on
Kazdy kto chce pouzivat PHP aj na inom pocitaci ako je jeho vlastny by ma pouzivat <?php a pocitat s tym ze kazdy ma php nastavene inac a urcite nie tak isto. Skratka pisat prenositelne skripty. Komentare s diakritikov tiez nieje to prave orechove...
Inac to bol velmi dobry serial. Je vidiet ze autor si dal zalezat.
<? a nie <?php a vyzadovanie register_globals = on
Kazdy kto chce pouzivat PHP aj na inom pocitaci ako je jeho vlastny by ma pouzivat <?php a pocitat s tym ze kazdy ma php nastavene inac a urcite nie tak isto. Skratka pisat prenositelne skripty. Komentare s diakritikov tiez nieje to prave orechove...
Inac to bol velmi dobry serial. Je vidiet ze autor si dal zalezat.
No ja mel problem s Set_Time_Limit(0); , coz jsem smaznul, bo je to spis v nastaveni serveru, ale horsi to mam s funkci BCDiv, ta tam podel me nikde neni nadefinovana a vyhazuje mi to chybovy okno - Fatal error: Call to undefined function: bcdiv() ......... sice nejsem v php moc zbehly, ale rekl bych, ze tam nadefinovani te funkce nekde chybi........... :(
bcdiv je funkcia z modulu BC Math, ktory je sucastou PHP od 4.0.4. Staci to len skompilovat
http://www.php.net/manual/en/ref.bc.php
set_time_limt nefunguje ak je nastaveny 'safe mode'
http://www.php.net/manual/en/ref.bc.php
set_time_limt nefunguje ak je nastaveny 'safe mode'
jak skompilovat? musis na me jako na skorolaika..... :o) jak ze to musi mit nastaveny server? ja mam prostor na http://www.pipni.cz, tudiz tam maji asi podporu toho modulu vypnutou ci co?
Sprav si subor:
<?php phpinfo() ?>
Ak vo vystupe nebude BC Math tak mas asi smolu
Pozrel som si zdrojaky a zistil som ze tuto funkciu netreba pouzit a autor by si mal radsej nastudovat funkcie prinf a sprintf
$rate = BCDiv($result["count_it"], ($pageviews/100), 2);
je mozne napisat BEZ BC Math:
$rate = sprintf("%.2f", $result["count_it"]/($pageviews/100));
Takze vsetky bcdiv je treba zamenit za sprintf
<?php phpinfo() ?>
Ak vo vystupe nebude BC Math tak mas asi smolu
Pozrel som si zdrojaky a zistil som ze tuto funkciu netreba pouzit a autor by si mal radsej nastudovat funkcie prinf a sprintf
$rate = BCDiv($result["count_it"], ($pageviews/100), 2);
je mozne napisat BEZ BC Math:
$rate = sprintf("%.2f", $result["count_it"]/($pageviews/100));
Takze vsetky bcdiv je treba zamenit za sprintf
http://quax.kmit.sk/stat.php.new.txt <- tu je upravena verzia bez BC Math
Super, dik moc, to uz vypada lip, se mi to rozjelo........... este mi to ale nezobrauje ty images v stat.php
pr. asi 90 radek - echo '<p align="center"><img src="hourly.php?sql_access_date=' . URLEncode($sql_access_date) . '" border="0" alt="">';
p.s.: priste by mel autor zkusit ten scipt i mimo nez na svym pocitaci s Apache a PHP...... :o)
pr. asi 90 radek - echo '<p align="center"><img src="hourly.php?sql_access_date=' . URLEncode($sql_access_date) . '" border="0" alt="">';
p.s.: priste by mel autor zkusit ten scipt i mimo nez na svym pocitaci s Apache a PHP...... :o)
Jinak je taky dulezity si udelat navstevu pred spustenim stat.php na strance, na ktere ma script merit a tez zajit treba na http://www.google.com a udelat si pristup i pres vyhledavac........
Jinak este jedna vec, tady mi to zobrazuje prazdnou bunku asi kdyz nekdo prijde primo a ne pres neco...........mozna to je schvalne........?
Z jakých stránek přišli
Server Počet Podíl
3 75.00 %
google.com 1 25.00 %
Jinak este jedna vec, tady mi to zobrazuje prazdnou bunku asi kdyz nekdo prijde primo a ne pres neco...........mozna to je schvalne........?
Z jakých stránek přišli
Server Počet Podíl
3 75.00 %
google.com 1 25.00 %
Myslete grafy nebo obrazky (pseudografy) v tabulkach? Predpokladam, ze asi grafy - mate naistalovan JpGraph?
PS: Skript jsem pochopitelne testoval i v prostredi internetu (ne pouze doma na lokale), konkretne na nixnet.cz a dodnes to funguje naprosto bez problemu.
PS: Skript jsem pochopitelne testoval i v prostredi internetu (ne pouze doma na lokale), konkretne na nixnet.cz a dodnes to funguje naprosto bez problemu.
Uz jsem to rozchodil....... jede to hezky....... goo work :o)
Diky za veskere pripominky. S tim SPrintF() mate pravdu, je to rozhodne lepsi nez BCDiv().
Serial je fakt pěknej, asi bych sam neprisel na to jak zjistit prohlizec nebo operacni system. Az na par chyb, musel jsem smazat set time limit, a predelam bcdiv - v php na serveru chybi, ale nejvetsi problem na kterej jsem narazil je, ze pri navstevnosti vic jak 1000 lidi denne, je to celkem průser, v mem připadě dokonce 1600 lidi denne, kteri udelali kolem 22000 pristupu, takze za 14 dni bylo v databazi pres 300000 zaznamu, ktere zabiraly kolem 40MB, ale horsi je to ze to nadmerne pretezovalo sql server a navic potom zobrazovani statistiky bylo docela pomale, takze jsem to byl nucen prozatim zrusit. Ale už pracuju na předělavce.
Doufam, ze se podelis s vysledkem............... :o)
Tak jsem si nainstaloval statistiku na mů server, ale háže mi tu to pár chyb (používám tuto verzi bez BC Math (http://quax.kmit.sk/stat.php.new.txt)
a zde je adresa na můj server kde dochází k těm chybám http://counter.sunstorm.sk/stat.php. time out ssem musel smáznout protože sním to nešlo vůbec. Nevíte čím to je ???
a zde je adresa na můj server kde dochází k těm chybám http://counter.sunstorm.sk/stat.php. time out ssem musel smáznout protože sním to nešlo vůbec. Nevíte čím to je ???
Chyba moze byt sposobena tym ze sa este nic nevyhladavalo :)
if(MySQL_Num_Rows($query) != 0) {
$max = MySQL_Result($query, 0, "count_it"); // riadok 295
$move = MySQL_Data_Seek($query, 0);
}
Podobne upravy by sa zisli aj na inych miestach.
if(MySQL_Num_Rows($query) != 0) {
$max = MySQL_Result($query, 0, "count_it"); // riadok 295
$move = MySQL_Data_Seek($query, 0);
}
Podobne upravy by sa zisli aj na inych miestach.
Asi by to chtelo i nejakou upravu ve statistice "Navštěvnost ve dnech" ....... script jede od vcerejska a ted ukazuje na Utery 100% a na Pondeli 0% ........... asi se to mozna zobrazi az po tydnu, kdy to bude mit hodnoty pro vsechny dny........... :(
Ano, je to presne tak, jak tvrdite. Ale pripada mi to celkem logicke, takze zadnou upravu to snad nepotrebuje.
Jiz v predchozich clancich bylo napsano, ze chybove stavy nejsou osetreny.
musis v nejakym vyhledavaci najit ten tvuj server, a dostat se na nej pres vyhledavac................a ty okynka, ktery neukazuji image.......sou ty grafy, ta upravena verze, je totiz ta grafova, ale ty to asi rozjizdis bez grafu.........tak v tom stat.php vymaz vsude ty dva radky //graf a hned ten pod tim ................ pak by ti to melo fachcit........
Chtel jsem Vam za tento serial moc podekovat. S PHP delam pul roku - a nebejt intervalu, jiste bych se na to uz v pocatcich vykaslal. Jeste jednou diky za serial o statistikach pristupu - v trochu upravene podobe mi vyborne slouzi:)
Jen tak dal
Barron
Jen tak dal
Barron
Výborný seriál, díky.
Pro ostatní první zlušenosti s provozem:
1. Chybová hlášení je nejjednodušší (byť možná poněkud barbarské) pouze potlačit (@ na začátku příslušné řádky - pro ty co teprve pronikají do tajů php). Může se stát, že některý den nebudete mít žádný přístup (např. chyba sreveru apod.) a hned máte chybových hlášení plnou obrazovku.
2. Má-li několik stránek stejný název, je lepší zobrazovat ve statistice pouze URL.
3. Má-li návštěvník zakázáno spouštění Java Scriptů, nedovíte se ani, kterou stránku navštívil. Je proto vhodné trochu upravit kód, který se vkládá do sledovaných stránek (nevím jak je v tomto fóru ošetřeno zobrazení tagů, proto jsem upravený kód umístil raději na http://www.primda.cz/download/stat_js.zip). Barevnou hloubku, rozlišení apod. se ale steně nezjistíte.
Pro ostatní první zlušenosti s provozem:
1. Chybová hlášení je nejjednodušší (byť možná poněkud barbarské) pouze potlačit (@ na začátku příslušné řádky - pro ty co teprve pronikají do tajů php). Může se stát, že některý den nebudete mít žádný přístup (např. chyba sreveru apod.) a hned máte chybových hlášení plnou obrazovku.
2. Má-li několik stránek stejný název, je lepší zobrazovat ve statistice pouze URL.
3. Má-li návštěvník zakázáno spouštění Java Scriptů, nedovíte se ani, kterou stránku navštívil. Je proto vhodné trochu upravit kód, který se vkládá do sledovaných stránek (nevím jak je v tomto fóru ošetřeno zobrazení tagů, proto jsem upravený kód umístil raději na http://www.primda.cz/download/stat_js.zip). Barevnou hloubku, rozlišení apod. se ale steně nezjistíte.
V mém předchozím příspěvku se do odkazu na upravený Jscsript zahrnula i závorka na konci - správně tedy odkaz zní http://www.primda.cz/download/stat_js.zip
Nefungujou mi popisky u grafů (např. procenta u koláčových grafů). Ve skriptu by problém být neměl (nefunguje to ani u příkladů). V jpgraph.php jsem měnil jen to, co je v článku. Je potřeba ještě něco změnit? Kde je problém?
Nedavno jsem si stahnul novou verzi Jpgraph a stacilo zmenit pouze CACHE_DIR a TTF_DIR. Jeste je dobre si v php.ini trvale nacist php_gd.dll (a mit tam spravnou cestu pro nacitani knihoven). Pokud se Vam ukazkove grafy v pohode vytvori a chybi pouze popisky, pak Vam si neporadim :-(