Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> licznik osob online, zawsze pokazuje wartosc 1 choc jest wiele osob na stronie ????
uczaj21
post
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 30.06.2007

Ostrzeżenie: (20%)
X----


Prosze o pomoc mam skrypt php pokazujacy ilosc osob na stronie online oraz ilosc osob odwiedzonych strone i nr ip.Problem polega na liczniku osob online na www zawsze pokazuje 1 osobe chodz jest ich wieksza ilosc.Tylko ta opcja zle dziala inne dzialaja prawidlowo
  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3.  
  4. function badIP($ip)
  5. {
  6. $end_line = "r\n";
  7. if(file_exists("banned_ip.txt")){
  8.   $fd = fopen("banned_ip.txt", "r+");
  9. }
  10. else{
  11.   $fd = fopen("banned_ip.txt", "a+");
  12. }
  13. if(!$fd) return false;
  14. while (!feof ($fd)) {
  15.   $line = trim(fgets($fd));
  16.   if($line == $ip){
  17.     fclose($fd);
  18.     return true;
  19.   }
  20. }
  21. fseek($fd, filesize("banned_ip.txt"));
  22. fputs($fd, $ip.$end_line);
  23. fclose($fd);
  24. return false;
  25. }
  26.  
  27. function getHits()
  28. {
  29. if(($fp = @fopen("counter.txt", "r+")) === false)
  30.   return false;
  31. $count = fgets($fp);
  32. if(!badIP($_SERVER['REMOTE_ADDR'])){
  33.   $count = $count + 1;
  34.   fseek($fp, 0);
  35.   fputs($fp, $count);
  36. }
  37. fclose($fp);
  38. return $count;
  39. }
  40. $minut = 1;
  41. $teraz = time()+60*$minut;
  42. $bazaip = file("ip.txt");
  43. $ile = count($bazaip);
  44. $ip = $_SERVER["REMOTE_ADDR"];
  45.  
  46. for ($i=0;$i<$ile;$i++) {
  47. $pol = explode("",$bazaip[$i]);
  48. if ($pol[2]<time()) {$bazaip[$i]="";}
  49. if ($pol[1]==$ip) {
  50. $bazaip[$i]="$ip$teraz <br>\n"; $jest=1;
  51. }
  52. }
  53.  
  54. if ($jest<>1) $bazaip[]="$ip $teraz\n";
  55. $f = fopen("ip.txt","w");flock($f,2);
  56. for ($i=0;$i<$ile+1;$i++) {
  57. if ($bazaip[$i]<>"") { fwrite($f, $bazaip[$i]); $ileip++; }
  58. }
  59. flock($f,3); fclose($f);
  60.  
  61. echo '<font size="2"><u>Gosci na naszej stronie online : </u></font>'.'<b><font color="#099FF0">'.$ileip.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></font>';
  62. echo('<font size="2"><u>Ta strona została odwiedzona : </u></font>'.'<font color="#099FF0"><b>'.getHits().'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></font>');
  63. echo '<font size="2"><u>&nbsp;Twoj numer ip : &nbsp;</u></font>'.'<b><font color="#099FF0">'.$ip.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></b>';
  64. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
okitoki
post
Post #2





Grupa: Zarejestrowani
Postów: 214
Pomógł: 18
Dołączył: 25.04.2009

Ostrzeżenie: (20%)
X----


Kod
<?php
$ip = $_SERVER['REMOTE_ADDR'];

function badIP($ip)
    {
        $end_line = "r\n";
        if(file_exists("banned_ip.txt"))
              $fd = fopen("banned_ip.txt", "r+");
        else
            $fd = fopen("banned_ip.txt", "a+");
          if(!$fd) return false;
        while (!feof ($fd))
            {
                $line = trim(fgets($fd));
                if($line == $ip)
                {
                       fclose($fd);
                      return true;
                }
            }
        
    fseek($fd, filesize("banned_ip.txt"));
    fputs($fd, $ip.$end_line);
    fclose($fd);
    return false;
    }

function getHits()
    {
        if(($fp = fopen("counter.txt", "r+")) === false)
              return false;
        $count = fgets($fp);
        if(!badIP($_SERVER['REMOTE_ADDR']))
        {
            $count = $count + 1;
              fseek($fp, 0);
              fputs($fp, $count);
        }
        fclose($fp);
        return $count;
    }
    
$minut = 1;
$teraz = time()+60*$minut;
$bazaip = file("ip.txt");
$jest=0;
$ileip=0;

for ($i=0;$i<count($bazaip);$i++)
{
    if(eregi("([0-9.]{1,})( )([0-9]{1,})",$bazaip[$i],$pol))
    {
        if ($pol[3]<time())    $bazaip[$i]="";
        if ($pol[1]==$ip)
            {
                $bazaip[$i]="$ip $teraz\n";
                $jest=1;
            }
    }
}

if ($jest<>1) $bazaip[]="$ip $teraz\n";
$f = fopen("ip.txt","w");flock($f,2);
for ($i=0;$i<count($bazaip);$i++)
    if ($bazaip[$i]<>"")
        {
            fwrite($f, $bazaip[$i]);
            $ileip++;
        }
flock($f,3); fclose($f);

echo '<font size="2"><u>Gosci na naszej stronie online : </u></font>'.'<b><font color="#099FF0">'.$ileip.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></font>';
echo('<font size="2"><u>Ta strona została odwiedzona : </u></font>'.'<font color="#099FF0"><b>'.getHits().'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></font>');
echo '<font size="2"><u>&nbsp;Twoj numer ip : &nbsp;</u></font>'.'<b><font color="#099FF0">'.$ip.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></b>';
?>


--------------------
Go to the top of the page
+Quote Post
uczaj21
post
Post #3





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 30.06.2007

Ostrzeżenie: (20%)
X----


Dzieki serdecznie działa a czy mógł byś wyjaśnić te zmiany w kodzie
Go to the top of the page
+Quote Post
okitoki
post
Post #4





Grupa: Zarejestrowani
Postów: 214
Pomógł: 18
Dołączył: 25.04.2009

Ostrzeżenie: (20%)
X----


praktycznie nie wiele zmodyfikowałem twój kod, funkcja eregi powoduje szczegółowe rozbicie zmiennej $bazaip[$i] na IP i time. co powoduje że nie dostają się tam żadne inne znaki typu enter, ma to znaczenie potem w porównaniu


--------------------
Go to the top of the page
+Quote Post
uczaj21
post
Post #5





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 30.06.2007

Ostrzeżenie: (20%)
X----


zauważyłem że po zmodifikowaniu kodu licznik odwiedzin po odswiezaniu strony nabija kolejne wartosci nie jest odporny na odswiezanie a byl odporny questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif
Go to the top of the page
+Quote Post
okitoki
post
Post #6





Grupa: Zarejestrowani
Postów: 214
Pomógł: 18
Dołączył: 25.04.2009

Ostrzeżenie: (20%)
X----


bo masz w kodzie dużo błędów, i to nie moich
Kod
<?php
$ip = $_SERVER['REMOTE_ADDR'];

function badIP($ip)
    {
        $end_line = "\r\n"; // tu miałes blad exclamation.gif!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        if(file_exists("banned_ip.txt"))
              $fd = fopen("banned_ip.txt", "r+");
        else
            $fd = fopen("banned_ip.txt", "a+");
          if(!$fd) return false;
        while (!feof ($fd))
            {
                $line = trim(fgets($fd));
                if($line == $ip)
                {
                       fclose($fd);
                      return true;
                }
            }
        
    fseek($fd, filesize("banned_ip.txt"));
    fputs($fd, $ip.$end_line);
    fclose($fd);
    return false;
    }

function getHits()
    {
        if(($fp = fopen("counter.txt", "r+")) === false)
              return false;
        $count = fgets($fp);
        if(!badIP($_SERVER['REMOTE_ADDR']))
        {
            $count = $count + 1;
              fseek($fp, 0);
              fputs($fp, $count);
        }
        fclose($fp);
        return $count;
    }
    
$minut = 1;
$teraz = time()+60*$minut;
$bazaip = file("ip.txt");
$jest=0;
$ileip=0;

for ($i=0;$i<count($bazaip);$i++)
{
    if(eregi("([0-9.]{1,})( )([0-9]{1,})",$bazaip[$i],$pol))
    {
        if ($pol[3]<time())    $bazaip[$i]="";
        if ($pol[1]==$ip)
            {
                $bazaip[$i]="$ip $teraz\n";
                $jest=1;
            }
    }
}

if ($jest<>1) $bazaip[]="$ip $teraz\n";
$f = fopen("ip.txt","w");flock($f,2);
for ($i=0;$i<count($bazaip);$i++)
    if ($bazaip[$i]<>"")
        {
            fwrite($f, $bazaip[$i]);
            $ileip++;
        }
flock($f,3); fclose($f);

echo '<font size="2"><u>Gosci na naszej stronie online : </u></font>'.'<b><font color="#099FF0">'.$ileip.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></font>';
echo('<font size="2"><u>Ta strona została odwiedzona : </u></font>'.'<font color="#099FF0"><b>'.getHits().'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></font>');
echo '<font size="2"><u>&nbsp;Twoj numer ip : &nbsp;</u></font>'.'<b><font color="#099FF0">'.$ip.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></b>';
?>


--------------------
Go to the top of the page
+Quote Post
uczaj21
post
Post #7





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 30.06.2007

Ostrzeżenie: (20%)
X----


jeśli są jakieś błedy to prosze o zniwelowanie ich ogolnie skrypt to ściągłem z internetu a nie jestem az na takim poziomie aby dojrzec i usunac bledy zalezy mi na tym aby skrypcik dzialal prawidlowo.Dzisiaj zauwazylem jak bylem na uczelni i wszedłem na stronke gdzie zainstalowalem skrypt komp postawiony byl na linuksie i co zauwazylem ze licznik online wcale nie dzialal a licznik odwiedzin odswiezal sie questionmark.gifquestionmark.gif przyszedłem do domu i z ciekawosci sprawdzilem u siebie na win xp i co dziwne licznik online dziala i licznik odwiedzin rowniez questionmark.gifquestionmark.gifquestionmark.gif
Go to the top of the page
+Quote Post
okitoki
post
Post #8





Grupa: Zarejestrowani
Postów: 214
Pomógł: 18
Dołączył: 25.04.2009

Ostrzeżenie: (20%)
X----


no cóż, tych błędów ja nie zrobiłem, one już są w skrypcie który tu wstawiłeś, a problem był na linuxie, bo jest lepiej zabespieczony niż windows,


--------------------
Go to the top of the page
+Quote Post
uczaj21
post
Post #9





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 30.06.2007

Ostrzeżenie: (20%)
X----


rozumiem ze to nie jest pana wina z tymi bledami lecz prosze o dokonanie zmian aby usunac te bledy Z gory dziekuje
Go to the top of the page
+Quote Post
okitoki
post
Post #10





Grupa: Zarejestrowani
Postów: 214
Pomógł: 18
Dołączył: 25.04.2009

Ostrzeżenie: (20%)
X----


ostatni skrypt który ci wysłałem ma już poprawione te błędy exclamation.gif


--------------------
Go to the top of the page
+Quote Post
uczaj21
post
Post #11





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 30.06.2007

Ostrzeżenie: (20%)
X----


ok dzieki przetestuje skrypt i sie odezwie z gory dziekuje
Go to the top of the page
+Quote Post
phpion
post
Post #12





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(uczaj21 @ 10.05.2009, 20:39:38 ) *
rozumiem ze to nie jest pana wina z tymi bledami lecz prosze o dokonanie zmian aby usunac te bledy Z gory dziekuje

<ot>
Zabrzmiało to jak jakiś zleceniodawca, który namierzył błędy po poprzednim programiście i prosi aktualnego o ich poprawienie...
</ot>
Go to the top of the page
+Quote Post
okitoki
post
Post #13





Grupa: Zarejestrowani
Postów: 214
Pomógł: 18
Dołączył: 25.04.2009

Ostrzeżenie: (20%)
X----


wiem że mój czas i wiedza jest cenna smile.gif. no cóż czasami trzeba też innym pomóc


--------------------
Go to the top of the page
+Quote Post
uczaj21
post
Post #14





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 30.06.2007

Ostrzeżenie: (20%)
X----


Witam ponownie po testowaniu skryptu zauwazylem kolejny mankament tyczacy sie licznika odwiedzin.Zauwazylem iz kiedy wejde na stronke to licznik doda kolejna wartosc lecz tylko raz jak raz zapisze sobie nr ip w pliku banned_ip.txt to juz na zawsze a powinno z tego pliku kasowac sie nr ip po jakims czasie a tu sie nie kasuje i jak juz wejde np na drugi dzien to i tak licznik nie naliczy tego?questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif
Go to the top of the page
+Quote Post
phpion
post
Post #15





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(uczaj21 @ 19.05.2009, 21:27:33 ) *
kiedy wejde na stronke to licznik doda kolejna wartosc lecz tylko raz jak raz zapisze sobie nr ip w pliku banned_ip.txt to juz na zawsze a powinno z tego pliku kasowac sie nr ip po jakims czasie a tu sie nie kasuje i jak juz wejde np na drugi dzien to i tak licznik nie naliczy tego?questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif

Masz ewidentne problemy z przekazaniem własnych myśli.

Jeżeli już znalazłeś błąd to czy próbowałeś go wyeliminować? Wydaje mi się, że czekasz aż ktoś zrobi to za ciebie... takie coś nazywa się zleceniem prac.
Go to the top of the page
+Quote Post
nieraczek
post
Post #16





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

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


O nie - znowu uczaj21 słynacy z tego, że czeka aż ktoś mu coś zrobi po czym nic już więcej w danym temacie nie napisze - tak jak zawsze.......

Ten post edytował nieraczek 19.05.2009, 20:35:49
Go to the top of the page
+Quote Post
okitoki
post
Post #17





Grupa: Zarejestrowani
Postów: 214
Pomógł: 18
Dołączył: 25.04.2009

Ostrzeżenie: (20%)
X----


Cytat(uczaj21 @ 19.05.2009, 21:27:33 ) *
Witam ponownie po testowaniu skryptu zauwazylem kolejny mankament tyczacy sie licznika odwiedzin.Zauwazylem iz kiedy wejde na stronke to licznik doda kolejna wartosc lecz tylko raz jak raz zapisze sobie nr ip w pliku banned_ip.txt to juz na zawsze a powinno z tego pliku kasowac sie nr ip po jakims czasie a tu sie nie kasuje i jak juz wejde np na drugi dzien to i tak licznik nie naliczy tego?questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif


tak jest skonstruowana część tego skryptu zapisująca do pliku ip.txt, zerknij na to może się uda przerobić powiększając czas z minyty na dobe


--------------------
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: 20.08.2025 - 06:03