ďťż

[php]licznik-blokada kilku wejść

       

Podstrony


telcocafe

Mam problem. Na swojej stronie mam skrypt, który rejestróje liczbe gości. Co mam zrobić, aby dany adres IP, rejestrował 1 raz. Bo za każdym odświażeniem czy właczeniem strony, czy podstrony jest coraz wiecej gości.
Oto skrypt
<?php if (file_exists('licznik.txt'))      $dane=file('licznik.txt'); else $dane=array(0); $dane[0]++; $plik=fopen('licznik.txt','w'); flock($plik,2); fputs($plik,$dane[0]); flock($plik,3); fclose($plik); echo $dane[0]; ?>



dodaj do tablicy sesyjnej jakąś zmieną odpowiedzialną za rozpoznawanie userów, który szwędają się po stronie ;-) btw w array to 0 jest zbędne

Dopiero zaczynam z php. czy mogłby mi ktoś pomóc??

albo laduj dane do tablicy z pliku i za pomoca in_array sprawdzaj czy user byl



Może ciasteczka? Zapisywać w nich czy byłeś czy nie...

Wiem, tylko jak to zrobić?? Dopiero zaczynam PHP.

to poszperaj po manualu a nie liczysz, że ktoś wsio za Ciebie napisze

Nie mówię o całym kodzie. MOże być jakiś link do strony, ale takiej na której jest to dobrze napisane.

no dobra widzę ze wszyscy tylko radza i radza a ja powiem tak:
ogólnie licznik gosci powinienes zrobic z ciasteczkiem (badaniowo zostało udowodnione ze jedynie 2% userów ciach nie przyjmuje) wiec dobrze by było żebyś sobie ustawil ciacho na 24 godziny minimum żeby nie zliczac tego samego usera w jednym dniu ale w nastepnym juz tak ja osobiście preferuje wygasanie ciach o 5 rano (wszyscy spia wiec mozna zaczac nowy dzien zliczeniowy)
a co do praktyki to żeby ci zabardzo nie ulatwic to napisze tylko jak sie ciacho ustawia na dana godzine

$godzinka = mktime(5,0,0,date("m"),(date("d")+1),date("Y" )); setcookie("nazwaciacha","jakaswartosc",$godzinka , "/");

no i oczywiscie musisz uzyc tego w if'ie

mam nadzieje ze troszke pomoglem

edyt: teraz tak sie wczytalem w twoj temat i pytanie czy tyczasem nie robisz licznika osob online?? jesli tak to ciacho trzeba by postawic w zaleznosci co ile odswierzasz klienta (ja proponje 30 minut) i tak:
setcookie("nazwaciacha","jakaswartosc",time()+1800);
Użytkownik Przemek77 edytował ten post 20 czerwiec 2006, 20:13
Dzięki. NIe chodziło o to że po kliknięciu na link strony i przejściu na inny dział licznik się zwiększał.

acha wiec jak ciacho postawisz na 5 rano dnia nastepnego to juz ci licznik od danego usera wogle nie bedzie skakal obojetnie co zrobi (chyba ze ciacho wyczysci)

Możesz pokazać jak by wyglądał cały kod?? Bo dzisiaj nie mam głowy do tego
// noga w gipsie.

oki czemu nie mnie tez kiedys ktos pomogl w paru problemach :)
wiec:
if ($_COOKIE["nazwaciacha"]!="jakaswartosc") { // jezeli ciacho nie jest rowne wartosci to // ustawiamy ciacho     $godzinka = mktime(5,0,0,date("m"),(date("d")+1),date("Y" ));     setcookie("nazwaciacha","jakaswartosc",$godzinka , "/"); // wykonujemy jednorazowo kod licznika } else { // w przypadku jesli masz np. zliczanie ogolnej ilosci odslon tak dla wlasnych statystyk (ile razy user motal sie po stronie     // to piszesz tu skrypcik takiego ogolnego licznika }
i to wszystko (godzinke ustwaiasz zmieniajac 3 poczatkowe cyfry - mozesz ciacho ustawiac co do sekundy, 3 kolejne to data - jesli chcesz na krotszy okres czasu ciacho ustawiac to lub na stały odstep czasu to dajesz zamiast $godzinka time()+60*60*24*1 - to jest ustawienie ciacha na 1 dzień czyli 60 sekund* 60minut*24godziny*1dzien :)

pozdrawiam
Użytkownik Przemek77 edytował ten post 20 czerwiec 2006, 20:27
a gdzie mam wstawić ten mój skrypt??

tam gdfzie napisalem
// wykonujemy jednorazowo kod licznika

jak nie masz alternatywy dla osob ktore ciacho maja to usun skrypt od else


Nie mówię o całym kodzie. MOże być jakiś link do strony, ale takiej na której jest to dobrze napisane.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.