Forum elektroda.pl

Regulamin | Punkty | Dodaj... | Ostatnie | Szukaj | Rejestracja | Zaloguj

Ta strona używa cookie. Dowiedz się więcej o celu ich używania i zmianie ustawień cookie w przeglądarce.
Korzystając ze strony wyrażasz zgodę na używanie cookie, zgodnie z aktualnymi ustawieniami przeglądarki.

[PHP] Licznik odwiedzin na stronie


Napisz nowy temat  Odpowiedz do tematu      Strona Główna -> Forum elektroda.pl -> Programowanie Ogólne -> [PHP] Licznik odwiedzin na stronie
Autor
Wiadomość
xMystic
Poziom 3
Poziom 3


Dołączył: 22 Gru 2011
Posty: 6
Miasto: KrK

Post#1 Post autora tematu 22 Gru 2011 16:16   

[PHP] Licznik odwiedzin na stronie


Witam

Mam na stronce skrypt licznik odwiedzin z wczoraj , dziś , z całego tygodnia.
Jednak chyba jest coś z nim nie tak , gdyż nie jest odporny na odświeżanie .
Po każdym odświeżeniu stronki przeze mnie dodaje + 10 .

Może ktoś wypatrzy błąd , będę wdzięczny .
Kod PHP - [rozwiń]
<?php
/******************************************\
Pro Statistics
Developed by DLEVIET.COM
\******************************************/

if(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}
 
// ip-protection in seconds
$counter_expire = 600;
 
// datebase host
$counter_host = "" . DBHOST ."";
$counter_database = "" . DBNAME ."";
$counter_user = "" . DBUSER ."";
$counter_password = "" . DBPASS ."";
 
$counter_connected = true;
 
// connect to database
$link = @mysql_connect($counter_host, $counter_user, $counter_password);
if (!$link)
{
// can't connect to database
$counter_connected = false;
echo "Error: " . mysql_error();
}
else
{
// select database
$db_selected = @mysql_select_db($counter_database, $link);
if (!$db_selected)
{
// can't select database
$counter_connected = false;
echo "Error: " . mysql_error();
}
}
 
if ($counter_connected == true)
{
$ignore = false;
 
// get counter information
$sql = "select * from " . PREFIX . "_prostats_values";
$res = mysql_query($sql);
 
// fill when empty
if (mysql_num_rows($res) == 0)
{
$sql = "INSERT INTO `" . PREFIX . "_prostats_values` (`id`, `day_id`, `day_value`, `week_id`, `week_value`, `month_id`, `month_value`, `year_id`, `year_value`, `all_value`, `record_date`, `record_value`) VALUES ('1', '" . date("z") . "', '1', '" . date("W") . "', '1', '" . date("n") . "', '1', '" . date("Y") . "', '1', '1', NOW(), '1')";
mysql_query($sql);
 
$sql = "select * from " . PREFIX . "_prostats_values";
$res = mysql_query($sql);
 
$ignore = true;
}
$row = mysql_fetch_assoc($res);
 
$day_id = $row['day_id'];
$day_value = $row['day_value'];
$week_id = $row['week_id'];
$week_value = $row['week_value'];
$month_id = $row['month_id'];
$month_value = $row['month_value'];
$year_id = $row['year_id'];
$year_value = $row['year_value'];
$all_value = $row['all_value'];
$record_date = $row['record_date'];
$record_value = $row['record_value'];
 
$counter_agent = (isset($_SERVER['HTTP_USER_AGENT'])) ? addslashes(trim($_SERVER['HTTP_USER_AGENT'])) : "";
$counter_time = time();
$counter_ip = trim(addslashes($_SERVER['REMOTE_ADDR']));
 
// ignorore some bots
if (substr_count($counter_agent, "bot") > 0)
$ignore = true;
 
// add counter
if ($ignore == false)
{
// day
if ($day_id == date("z"))
{
$day_value++;
}
else
{
$day_value = 1;
$day_id = date("z");
}
 
// week
if ($week_id == date("W"))
{
$week_value++;
}
else
{
$week_value = 1;
$week_id = date("W");
}
 
// month
if ($month_id == date("n"))
{
$month_value++;
}
else
{
$month_value = 1;
$month_id = date("n");
}
 
// year
if ($year_id == date("Y"))
{
$year_value++;
}
else
{
$year_value = 1;
$year_id = date("Y");
}
 
// all
$all_value++;
 
// neuer record?
if ($day_value > $record_value)
{
$record_value = $day_value;
$record_date = date("Y-m-d H:i:s");
}
 
// speichern und aufräumen
$sql = "update " . PREFIX . "_prostats_values set day_id = '$day_id', day_value = '$day_value', week_id = '$week_id', week_value = '$week_value', month_id = '$month_id', month_value = '$month_value', year_id = '$year_id', year_value = '$year_value', all_value = '$all_value', record_date = '$record_date', record_value = '$record_value' where id = 1";
mysql_query($sql);
}
}
 
$recdate = date("d.m.Y", strtotime($record_date));
 
$prostats = "<fieldset class='fieldset'><legend style='color: rgb(255, 0, 0);'>Site Visits</legend>
<div align='left'>Today Visits: <B>$day_value</B> <BR>
This Week Visits: <B>$week_value</B> <BR>
This Month Visits: <B>$month_value</B> <BR>
This Year Visits: <B>$year_value</B> <BR>
All Visits: <B>$all_value </B><BR>
Record: <B>$record_value</B> In $recdate
</div></fieldset>"
;
 
echo $prostats;
?>

Powrót do góry
   
arnoldziq
Poziom 24
Poziom 24


Dołączył: 14 Kwi 2006
Posty: 4485
Miasto: High Wycombe

Post#2 22 Gru 2011 17:15pomocny post - solucja   

Re: Poprawa skryptu licznika odwiedzin


Ten skrypt w ogóle nie sprawdza, czy poprzednio ktoś łączył się z tego samego adresu IP, co pozwala na pominięcie zwiększania licznika przy odświeżaniu strony.
Poza tym, ta część skryptu, jest mocno dyskusyjna ...
Kod PHP - [rozwiń]
// ignorore some bots
if (substr_count($counter_agent, "bot") > 0)
$ignore = true;

Brakuje tam chyba kilku nawiasów ostrych...
Powrót do góry
   
Google


Google Adsense


Post# 22 Gru 2011 17:15pomocny post - solucja   





Powrót do góry
   
xMystic
Poziom 3
Poziom 3


Dołączył: 22 Gru 2011
Posty: 6
Miasto: KrK

Post#3 Post autora tematu 22 Gru 2011 21:55   

Re: Poprawa skryptu licznika odwiedzin


Dziękuję za odpowiedź ;)

Czy istniała by możliwość w ogóle poprawy tego skryptu ( dodanie kodu sprawdzającego IP) ?

Może zna ktoś w miarę wiarygodny skrypt zliczający wizyty z wczoraj i dziś ?
Powrót do góry
   
Google


Google Adsense


Post# 22 Gru 2011 21:55   





Powrót do góry
   
arnoldziq
Poziom 24
Poziom 24


Dołączył: 14 Kwi 2006
Posty: 4485
Miasto: High Wycombe

Post#4 22 Gru 2011 22:59pomocny post - solucja   

Re: Poprawa skryptu licznika odwiedzin


Kiedyś napisałem sobie licznik w PHP.
Założenia były 3 :
- miał generować obrazek, złożony z zadanych cyfr;
- miał sprawdzać z jakiego kraju pochodzi osoba, która stronę wywołuje;
- miał nie zliczać odświeżania strony.
Licznik, zawiera także proste statystyki.
W archiwum, masz wszystkie kody źródłowe, wraz z przykładowymi obrazami cyfr.
Wszelkie odwiedziny, są logowane do pliku tekstowego, w katalogu '\logs\'.
Możesz także wywołać skrypt wielokrotnie, dla rożnych podstron, aby uzyskać osobne wskazania liczników na każdej stronie.

Skrypt wywołuje się bardzo prosto, dodajesz go jako źródło obrazka :
Kod HTML - [rozwiń]
<img src="www.twoja_strona.pl\licznik\index.php?styl=nazwa_katalogu_z_cyframi&log=nazwa_wybranego_logu" />

Np dla takiego wywołania :
przykladowa-strona.elektroda.eu/licznik/index.php?styl=fdb&log=elektroda
Licznik wygląda tak : [PHP] Licznik odwiedzin na stronie
Dla takieg : przykladowa-strona.elektroda.eu/licznik/index.php?styl=7seg&log=elektroda
Licznik wygląda tak : [PHP] Licznik odwiedzin na stronie
itd.

Co prawda, licznik, nie zlicza odwiedzin 'wczorajszych'... Ale logi zapisywane są z datą, więc nic nie stoi na przeszkodzie, żeby zliczać odwiedziny w dowolnym okresie czasu.
Wszystkie ustawienia masz w pliku config.php. W tym pliku, znajdują się także ustawienia domyślne, które pozwalają wywołać plik index.php, bez żadnych dodatkowych ustawień, typu styl czy ilość cyfr.
Zresztą, pokombinuj :P

P.S.: Statystyki odwiedzin, wywołuje się : '/licznik/index.php?stats'... Oczywiście jako link, a nie źródło obrazka :P

Załączniki:
Powrót do góry
   
Google


Google Adsense


Post# 22 Gru 2011 22:59pomocny post - solucja   





Powrót do góry
   
xMystic
Poziom 3
Poziom 3


Dołączył: 22 Gru 2011
Posty: 6
Miasto: KrK

Post#5 Post autora tematu 23 Gru 2011 12:28   

Re: [PHP] Licznik odwiedzin na stronie


Wielkie wielki dzięki kolego :)

Tego szukałem ;)
Powrót do góry
   
arnoldziq
Poziom 24
Poziom 24


Dołączył: 14 Kwi 2006
Posty: 4485
Miasto: High Wycombe

Post#6 23 Gru 2011 13:07   

Re: [PHP] Licznik odwiedzin na stronie


Zapomniałem dodać.
wywołanie pliku digits.php,albo wejście do katalogu /digits/ poprzez przeglądarkę, spowoduje wyświetlenie listy wszystkich dostępnych obrazków cyfr.
Powrót do góry
   
Google


Google Adsense


Post# 23 Gru 2011 13:07   





Powrót do góry
   
walesus
Poziom 3
Poziom 3


Dołączył: 12 Sie 2007
Posty: 7

Post#7 29 Gru 2012 14:56   

Re: [PHP] Licznik odwiedzin na stronie


Licznik mistrzostwo świata - tego własnie potrzebowałem , pytanko jak zmienić kolor pod tekstem i flagą na biały a text na czarno . Pozdrawiam
Powrót do góry
   
arnoldziq
Poziom 24
Poziom 24


Dołączył: 14 Kwi 2006
Posty: 4485
Miasto: High Wycombe

Post#8 02 Sty 2013 11:25   

Re: [PHP] Licznik odwiedzin na stronie


walesus napisał:
Licznik mistrzostwo świata - tego własnie potrzebowałem , pytanko jak zmienić kolor pod tekstem i flagą na biały a text na czarno . Pozdrawiam

Tło można zmienić bardzo prosto; Zrób lub ściągnij z internetu obrazki cyferek na białym tle i skrypt automatycznie pobierze ten kolor jako tło całego obrazka.
Co do koloru napisów, to tworzony jest w tych liniach kodu :
Kod PHP - [rozwiń]
[...]
$white = imagecolorallocate($obrazek, 255, 255, 255);
imagettftext($obrazek, 8, 0, 27, 10, $white, $font, $text);
[...]

Zdefiniuj sobie swój kolor w RGB, przy pomocy imagecolorallocate, zapisz go do zmiennej i użyj.
Powrót do góry
   
walesus
Poziom 3
Poziom 3


Dołączył: 12 Sie 2007
Posty: 7

Post#9 02 Sty 2013 17:31   

Re: [PHP] Licznik odwiedzin na stronie


Serdecznie dziękuje i pozdrawiam .. jak narazie licznik spisuje się świetnie a z kolorami pewno w weekend będe się bawił Pozdrawiam
Powrót do góry
   
alhenag
Poziom 1
Poziom 1


Dołączył: 06 Sie 2013
Posty: 1

Post#10 06 Sie 2013 11:31   

Re: [PHP] Licznik odwiedzin na stronie


arnoldziq napisał:
Tło można zmienić bardzo prosto; Zrób lub ściągnij z internetu obrazki cyferek na białym tle i skrypt automatycznie pobierze ten kolor jako tło całego obrazka.
Co do koloru napisów, to tworzony jest w tych liniach kodu :
Kod PHP - [rozwiń]
[...]
$white = imagecolorallocate($obrazek, 255, 255, 255);
imagettftext($obrazek, 8, 0, 27, 10, $white, $font, $text);
[...]

Zdefiniuj sobie swój kolor w RGB, przy pomocy imagecolorallocate, zapisz go do zmiennej i użyj.


Witam
Walczę z tym licznikiem już ze dwie godziny. Próbuję wstawić obrazki png z przezroczystością - nie wyświetlają się. Nie umiem też zmienić tła pod flagą i napisem na przezroczyste i koloru samego napisu - przy próbie zmiany zmiennej white na jakiekolwiek inne parametry [np. $white = imagecolorallocate($obrazek, 0, 0, 0);] licznik "wywala się".
Ponadto w przypadku maleńkich obrazków cyferek licznik ma niewielką szerokość i napis przy fladze "nie mieści się". Chciałabym poszerzyć samo pole wyświetlania licznika.
Czy autor licznika zechciałby mi pomóc? Będę wdzięczna :)
Powrót do góry
   
Napisz nowy temat  Odpowiedz do tematu      Strona Główna -> Forum elektroda.pl -> Programowanie Ogólne -> [PHP] Licznik odwiedzin na stronie
Strona 1 z 1
Podobne tematy
Program w C/C++ jako CGI (licznik odwiedzin) (8)
PHP - Licznik odwiedzin odporny na odświeżanie i wyłączone ciasteczka (5)
php, mysql - Kalendarz z imieninami + licznik odwiedzin. (3)
Licznik odwiedzin na stronie - jak wstawić? (6)
[PHP] Zliczanie liczby odwiedzin na stronie. cz. 2 (14)
[PHP] Zliczanie liczby odwiedzin na stronie. (6)
[PHP] Statystyki na stronie WWW. (8)
stan przycisków na stronie - php (19)
Zmiana języka na stronie PHP (2)
Formularz php na stronie html (3)


Administrator || Moderatorzy || Regulamin forum || Regulamin ogólny || Informacja o cookies || Reklama || Kontakt

Page generation time: 0.433 seconds

elektroda.pl temat RSS