Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem licznik na mysql nie odporny na odświeżanie
jarod20
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Mragowo

Ostrzeżenie: (0%)
-----


Witam!!
Mam problem z licznikiem odwiedzin a mianowicie, nie jest odporny na odświeżanie strony, i to troche dziwne gdyż wysyłam cookie zeby tak nie było (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) . Wiec prosze o zerkniecie w ten kod i napisanie mi gdzie robi błąd

plik stats.php
[php:1:fd160373a4]<?php
<?php

include("connect.inc");


function stats() {
{
$wynik = mysql_query ("SELECT id FROM stats ;");
$liczba = mysql_num_rows($wynik);
}
return $liczba;
}

function wstaw_stats($data, $czas, $przegladarka, $system, $ip, $host) {

$query = "SELECT * FROM stats ";
$wynik = mysql_query($query);

$query = "INSERT INTO stats (id, data, czas, przegladarka, system, ip, host) VALUES ('', '$data', '$czas', '$przegladarka', '$system', '$ip', '$host');";

$wynik = mysql_query($query);
}

$TryCookie=$HTTP_COOKIE_VARS["licznik"];
if(isset($TryCookie))
{

$wszystko=stats();
print"Jeste&para;&nbsp<b> $wszystko</b>&nbsposob&plusmn; odwiedzaj&plusmn;c&plusmn; tę stronę";

} else {

$data = date("Y-m-d");
$czas = date("H:i:s");
$browser=$_SERVER["HTTP_USER_AGENT"];
$ip=$_SERVER["REMOTE_ADDR"];
$host=gethostbyaddr($ip);

if(eregi("msie",$browser) || eregi("compatible",$browser)) { $przegladarka="MS Internet Explorer"; }
elseif(eregi("mozilla",$browser) && !eregi("compatible",$browser) || eregi("communicator",$browser)) { $przegladarka="mozilla"; }
elseif(eregi("opera",$browser)) { $przegladarka="opera"; }
elseif(eregi("lynx",$browser)) { $przegladarka="lynx"; }
elseif(eregi("links",$browser)) { $przegladarka="links"; }
elseif(eregi("mosaic",$browser)) { $przegladarka="mosaic"; }
else { $przegladarka="inna"; }

if(eregi("win",$browser) || !eregi("linux",$browser)) { $system="Windows"; }
elseif(eregi("linux",$browser)) { $system="Linux"; }
elseif(eregi("mac",$browser)) { $system="Macintosh"; }
elseif(eregi("sunos",$browser)) { $system="SunOs"; }
elseif(eregi("irix",$browser)) { $system="IRIX"; }
elseif(eregi("amiga",$browser)) { $system="Amiga"; }
elseif(eregi("os/2",$browser)) { $system="OS/2"; }
else { $system="inne"; }

wstaw_stats($data, $czas, $przegladarka, $system, $ip, $host);

$wszystko=stats();
print"Jeste&para;&nbsp<b> $wszystko</b>&nbsposob&plusmn; odwiedzaj&plusmn;c&plusmn; tę stronę";

}
?>
?>

?>[/php:1:fd160373a4]

a w piku top.php ktory wywolywany jest na kazdej podstronie znajduje się:
[php:1:fd160373a4]<?php
<?php
ob_start();
setcookie("licznik","2", time()+3600*6);



?>[/php:1:fd160373a4]
Pomóżcie bo naprawde nie wiem co robie żle
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ludwik
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 25.03.2004
Skąd: Staszów

Ostrzeżenie: (0%)
-----


Na samej górze pliku z licznikiem piszę
[php:1:d5e962b717]<?php
session_start();
?>
[/php:1:d5e962b717]
A potem w miejscu gdzie mam się pojawić licznik:

[php:1:d5e962b717]<?php
if(!$dodaj)
{
session_register("dodaj");
$dodaj = "1";
$conn=mysql_connect("","","");
mysql_select_db("test", $conn);
$query = "UPDATE licznik SET wartosc=wartosc+1";
$wynik = mysql_query($query);

$zapytanie = "SELECT * FROM licznik WHERE id = 1";
$wykonaj = mysql_query($zapytanie);
while($wiersz = mysql_fetch_array($wykonaj))
{
print "Stronę odwiedzono już:<b>".$wiersz['wartosc']."</B> razy";
}
}
else
{
$conn=mysql_connect("","","");
mysql_select_db("test", $conn);
$zapytanie = "SELECT * FROM licznik WHERE id = 1";
$wykonaj = mysql_query($zapytanie);
while($wiersz = mysql_fetch_array($wykonaj))
{
print "Stronę już:<b>".$wiersz['wartosc']."</B> razy";
}
}

?>
[/php:1:d5e962b717]

Jest to oparte na sesjach i u mnie chodzi. Spróbuj przerobić do swoich potrzeb. Albo przynajmniej popatrz o co w tym chodzi i zrób swój licznik na sesjach.

Jak będę miał trochę czasu to pomogę przerobić. No ale napewno nie dziś i nie jutro.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 07:51