Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Licznik
Glarden
post
Post #1





Grupa: Zarejestrowani
Postów: 153
Pomógł: 2
Dołączył: 28.05.2007
Skąd: Stamtąd

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


Mam licznik osób, które były na stronie, ale nie chcę, żeby dodawał do licznika osobę, która już na stronie była wcześniej. Rozpoznaje po IP. Skrypt wygląda tak:
  1. <?php
  2. function dodaj () {
  3. $file = file("licznik.txt");
  4. $ip = $_SERVER['REMOTE_ADDR'];
  5. if (!in_array($ip, $file)) {
  6. $plik = fopen("licznik.txt", "w");
  7. fputs($plik, $ip."rn");
  8. for ($i=0;$i<count($file);$i++) {
  9. fputs ($plik, $file[$i]);
  10. }
  11. fclose($plik);
  12. }
  13. }
  14. function odczytaj () {
  15. $file = file("licznik.txt");
  16. $ile = count($file);
  17. return $ile;
  18. }
  19. ?>


I co nie zrobię, to jednak dodaje do tego pliku i przy każdym wejściu inkrementuje licznik. Co jest źle?


--------------------
Raz, dwa, trzy, baba Jaga patrzy!
http://trelemorele.cba.pl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Hacker
post
Post #2





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

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


polecam manual php

Cytat
Elementy tablicy zawierają znak nowej linii.


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
Go to the top of the page
+Quote Post
Glarden
post
Post #3





Grupa: Zarejestrowani
Postów: 153
Pomógł: 2
Dołączył: 28.05.2007
Skąd: Stamtąd

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


Dzięki, teraz już działa.
Ale mam jeszcze jedną prośbę. Zrobiłem licznik osób online, ale na razie mogę go wypróbować tylko na localhoscie, więc moglibyście sprawdzić, czy nie ma błędów? Oto skrypt:
  1. <?php
  2. function online_dodaj () {
  3. include ("baza.php");
  4. $c = time();
  5. $ses = session_id();
  6. $query = "select * from online where session_id='$ses'";
  7. $result = mysql_query ($query);
  8. $ile = mysql_num_rows ($result);
  9. if ($ile>0) {
  10. $query = "update online set time='$c' where session_id='$ses'";
  11. $result = mysql_query ($query);
  12. }
  13. else {
  14. $query = "insert into online values ('$ses', '$c')";
  15. $result = mysql_query ($query);
  16. }
  17. $czas = (time()-300);
  18. $query = "delete from online where time<$czas";
  19. $result = mysql_query ($query);
  20. }
  21.  
  22. function online_odczytaj () {
  23. include ("baza.php");
  24. $query = "select * from online";
  25. $result = mysql_query ($query);
  26. $online = mysql_num_rows ($result);
  27. return $online;
  28. }
  29. ?>


Kiedy ja wchodzę, to pokazuje, że jest jedna osoba (czyli poprawnie).


--------------------
Raz, dwa, trzy, baba Jaga patrzy!
http://trelemorele.cba.pl
Go to the top of the page
+Quote Post
Kicok
post
Post #4





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Błędów w działaniu być nie powinno, tyle że kod jest nieco nieoptymalnie napisany. Jeśli chce ci się z tym jeszcze bawić, to zainteresuj się TYM przy odczytywaniu ilości osób online
oraz TYM przy aktualizowaniu wpisów w bazie danych (dzięki REPLACE liczbę zapytań z 4 możesz zmniejszyć do dwóch)

Ten post edytował Kicok 23.07.2007, 19:05:32


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
Glarden
post
Post #5





Grupa: Zarejestrowani
Postów: 153
Pomógł: 2
Dołączył: 28.05.2007
Skąd: Stamtąd

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


Poczytam. Wielkie dzięki.


--------------------
Raz, dwa, trzy, baba Jaga patrzy!
http://trelemorele.cba.pl
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 12:34