ďťż
Podstrony
|
telcocafePró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 |
|||
Sitedesign by AltusUmbrae. |