![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 12.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Uczę się dopiero php i obecnie postanowiłem napisać własny licznik on-line zamiast korzystać z darmowych, problemem jednak było się jak go zrobić (bo nie wiedziałem jakiej funkcji/zmiennej użyć aby rozpoznawała ona obecność czyjego ip na stronie) więc zacząłem szukać darmowego i znalazłem kod na stronie webcoding.pl gdzie poniżej zamieszczam jego kod. Nie wiem czy działa bo jego go nie sprawdzałem ale jako, że się uczę nie sposób skopiować i wkleić skrypt tylko go zrozumieć no i właśnie tutaj mam prośbę do was bo strasznie jak dla mnie ten kod jest zagmatwany:/ Czy ktokolwiek z was mógł by mi go wytłumaczyć linijka po linijce? jest krotki więc dla was nie powinien być jakimś szczególnym wyzwaniem. Z góry dziękuję.
Kod <?
$minuty=10; $czas=time()+60*$minuty; $bazaip = file("online.txt"); $ile=count($bazaip); $ip = $_SERVER["REMOTE_ADDR"]; for ($i=0;$i<$ile;$i++) { $pol = explode("`",$bazaip[$i]); if ($pol[2] if ($pol[1]==$ip) { $bazaip[$i]="`$ip`$czas` "; $jest=1; } } if ($jest<>1) $bazaip[]="`$ip`$czas` "; $f = fopen("online.txt","w");flock($f,2); for ($i=0;$i<$ile+1;$i++) { if ($bazaip[$i]<>"") { fwrite($f, $bazaip[$i]); $ileip++;} } flock($f,3); fclose($f); echo "Osób on-line:".$ileip."."; ?> |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Przede wszystkim time() to nie zmienna, a funkcja. Funkcja ta zwraca aktualny czas w sekundach, ale od 1 stycznia 1970 roku od godziny 00:00:00 GMT. Po drugie podany kod nie ma prawa zadziałać, ponieważ warunek w linii 9 jest co najmniej "dziwny", a na pewno nieprawidłowy. Po trzecie zmienna $czas jest w tym skrypcie zapisywana do pliku, obok adresu ip, ale w sumie nie wiemy po co (i nawet ciężko mi zgadnąć zamiary autora).
Tak szczerze powiedziawszy, to nawet nie ma sensu tłumaczyć tego skryptu. Natomiast schemat postępowania w takim przypadku powinien być następujący: 1. pobieramy adres ip ze zmiennej $_SERVER['REMOTE_ADDR'], 2. odczytujemy zawartość pliku z dysku i odpowiednio rozbijamy na tablicę, 3. w pętli po otrzymanej tablicy sprawdzamy, czy adres ip jest w niej zapisany, 4a. jeśli tak, to pobieramy tylko liczbę zapisanych adresów, 4b. jeśli nie to zapisujemy adres ip do pliku i zwiększamy liczbę adresów online o 1. Tyle. Sposobów realizacji jest tyle, ilu programistów. Spróbuj coś napisać, a w razie problemów pisz. Ten post edytował mortus 7.04.2010, 17:46:35 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 21:08 |