![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 30.06.2007 Ostrzeżenie: (20%) ![]() ![]() |
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
|
|
|
![]() |
![]() ![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%) ![]() ![]() |
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.' </b></font>'; echo('<font size="2"><u>Ta strona została odwiedzona : </u></font>'.'<font color="#099FF0"><b>'.getHits().' </b></font>'); echo '<font size="2"><u> Twoj numer ip : </u></font>'.'<b><font color="#099FF0">'.$ip.' </font></b>'; ?> -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 30.06.2007 Ostrzeżenie: (20%) ![]() ![]() |
Dzieki serdecznie działa a czy mógł byś wyjaśnić te zmiany w kodzie
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%) ![]() ![]() |
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
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 30.06.2007 Ostrzeżenie: (20%) ![]() ![]() |
zauważyłem że po zmodifikowaniu kodu licznik odwiedzin po odswiezaniu strony nabija kolejne wartosci nie jest odporny na odswiezanie a byl odporny
![]() ![]() ![]() ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%) ![]() ![]() |
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 ![]() 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.' </b></font>'; echo('<font size="2"><u>Ta strona została odwiedzona : </u></font>'.'<font color="#099FF0"><b>'.getHits().' </b></font>'); echo '<font size="2"><u> Twoj numer ip : </u></font>'.'<b><font color="#099FF0">'.$ip.' </font></b>'; ?> -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 30.06.2007 Ostrzeżenie: (20%) ![]() ![]() |
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
![]() ![]() ![]() ![]() ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%) ![]() ![]() |
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,
-------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 30.06.2007 Ostrzeżenie: (20%) ![]() ![]() |
rozumiem ze to nie jest pana wina z tymi bledami lecz prosze o dokonanie zmian aby usunac te bledy Z gory dziekuje
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%) ![]() ![]() |
ostatni skrypt który ci wysłałem ma już poprawione te błędy
![]() -------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 30.06.2007 Ostrzeżenie: (20%) ![]() ![]() |
ok dzieki przetestuje skrypt i sie odezwie z gory dziekuje
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%) ![]() ![]() |
wiem że mój czas i wiedza jest cenna
![]() -------------------- |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 30.06.2007 Ostrzeżenie: (20%) ![]() ![]() |
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?
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
|
![]()
Post
#15
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
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? ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 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. |
|
|
![]()
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 |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%) ![]() ![]() |
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? ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 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 -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:03 |