ďťż

Licznik odwiedzin w php...

       

Podstrony


telcocafe

Próbowałem napisać licznik odwiedzin odporny na odświerzanie za pomoca ciasteczek, jednak coś mi nie wyszło, mógłby ktoś mi poprawić ten kod.

<?  function licznik () {            $wynik = mysql_query ("SELECT * FROM liczniki WHERE name='portal' ");        $rekord = mysql_fetch_assoc ($wynik);    $ile = $rekord["val"];   if($v!="1"){    $wynik = mysql_query ("UPDATE liczniki SET val = val+1 WHERE name='portal'"); return $ile+1; } else {return $ile;}     setcookie('v', "1", time()+3600*3);    } ?>



a w którym miejscu sprawdzasz czy ciasteczko jest ustawione?

Ja licznik napisał bym tak
<?php if(file_exists("licznik.nr")){ $file=fopen("licznik.nr","r"); flock($file,1); $ile=fgets($file); flock($file,3); fclose($file); if($visited!=1){ $ile++; } } else{ $ile=1; } $file=fopen("licznik.nr","w"); flock($file,2); fwrite($file,$ile); flock($file,3); fclose($file); print"$ile"; ?>

i w pliku np. index.php taką linijkę:
<?php
setcookie("visited","1",time()+3600*4);
?>

Oczywiście tu wykorzystany jest zapis do pliku.
Jeżeli bardzo zależy ci żeby wyniki były zapisywane do bazy mysql to spróbuj to przerobić albo napisz tutaj to zmienie trochę ten kod :)

na samej górze daje ciastecko później sprawdzam if($visited!=1){ i zwiekszam o 1 dlaczego to nie działa i licznik zwiekasza się z kazdym odświerzeniem jak zrobić żeby to działało?



nic prostszego :P . Na początku strony przed <html> dajesz takie coś:

<?php
if (!isset($_COOKIE("nazwa_ciasteczka"))) {
setcookie("ciasteczko" , "12345" , time()+ 3600);
//Operacja dodanie do pliku:P Nie chce mi się pisać:D
} else {
Pobierasz dane z pliku fopen , fgets itp... i wyświetlasz echem () :D
} >pozdrawiam programistów php:D
Użytkownik marcin-webmaster edytował ten post 25 marzec 2005, 23:39
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.