Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Co jest zle ??
Forum PHP.pl > Forum > Gotowe rozwiązania
_scorpio__
Chcialem przerobilem skrypcik do wyswietlania aktywnych urzytkownikow w sici, tak aby odczytywal on dane z mojego pliku ktory jest nie co inaczej zapisay. Tyle ze skrypt odczytuje Nazwy userow ale nie wyswietla kto jest aktywny. O to ten skrypt
[php:1:1ee205ec75]
<?
$wyswietlanie = "1";
$statoff[0]="<font color=#FF0000>Offline</font>";
$statoff[1]="<img src=off.jpg>";
$staton[0]="<font color=#05AD05>Online</font>";
$staton[1]="<img src=on.jpg>";

$file=fopen("dane.txt", "r");
while (!feof ($file)) {
$linia = fgets($file, 1024);
$ip=explode("||", $linia);
$pol=fsockopen("$ip[3]", 139, $_, $_, 3);
if($pol)
$status=online;
else
$status=offline;
echo("<tr><td>$ip[0]<td>");
if($status=="online")
echo("$staton[$wyswietlanie]");
if($status=="offline")
echo("$statoff[$wyswietlanie]");
}
fclose($file);
?>
[/php:1:1ee205ec75]
Dane w pliku zapisane sa w postaci
nazwa || wy || o || 192.168.0.6
Wiec potrzebuje odczyac nazwe i ip
CZy moglby ktos podpowiedziec czemu to nie dziala ?
Nitro
Spróbój tak:
[php:1:34da1a1c36]<?php
$wyswietlanie="0";
$statoff[0]="<font color=#FF0000>Offline</font>";
$statoff[1]="<img src=off.jpg>";
$staton[0]="<font color=#05AD05>Online</font>";
$staton[1]="<img src=on.jpg>";

$file=file("dane.txt");
foreach ($file as $row) {
list($nick,$zm2,$zm3,$ip)=explode("||",trim($row));
$pol=fsockopen("$ip", 4444, $_, $_, 3);
echo("$nick: ");
if($pol) {
echo("$staton[$wyswietlanie]<br />");
}
else {
echo("$statoff[$wyswietlanie]<br />");
}
}
?>[/php:1:34da1a1c36]
_scorpio__
Moze i lepiej wyglada ale nie dziala sad.gif wpisy sie ukazuja ale nie jest sprawdzane ip znaczy wszyscy wedlug tego sa offlie a 2 osoby w realu sa online w czym ja biggrin.gif
Nitro
Nazwa i ip są czytane poprawnie. Problem tkwi gdzie indziej.
O ile dobrze kojarze funkcja fsockopen() nawiązuje połączenie z zadanym portem na wskazanym komputerze (ip), jednakże jeżeli stoi on za firewall'em lub ma dany port blokowany, to nic z tego. Pomimo tego, że jest w sieci ten skrypt go nie wykryje.
_scorpio__
Cytat
Nazwa i ip są czytane poprawnie. Problem tkwi gdzie indziej.
O ile dobrze kojarze funkcja fsockopen() nawiązuje połączenie z zadanym portem na wskazanym komputerze (ip), jednakże jeżeli stoi on za firewall'em lub ma dany port blokowany, to nic z tego. Pomimo tego, że jest w sieci ten skrypt go nie wykryje.

Ej ja to wiem ale mam ten orginalny skrypt ktory byl sciagniety z forum i on dziala sad.gif tylko ten moj po tych przerobkach nie dziala sad.gif wiec problem stoi po stronie skryptu
Nitro
Działa, jeżeli dane w pliku zapisujesz:
Kod
nazwa||wy||o||192.168.0.6

Wszystko psuło się przez te spacje tongue.gif (kórych u siebie nie mialem)
_scorpio__
ej no pokasowalem spacje i nie dziala sad.gif nadal wiec chyba to nie jest powod sad.gif
Nitro
Zobacz sam:
Działający przykład

Plik z danymi wyglada tak:
Kod
Wirtualna Polska||wy||o||212.77.100.101

Nieznany||1||2||217.153.5.178

Localhost||wy||o||127.0.0.1

Cygnus Division||1||2||150.254.17.2
_scorpio__
Cytat
Zobacz sam:
Działający przykład

Plik z danymi wyglada tak:
Kod
Wirtualna Polska||wy||o||212.77.100.101

Nieznany||1||2||217.153.5.178

Localhost||wy||o||127.0.0.1

Cygnus Division||1||2||150.254.17.2

Ej no dobra ja ci wierze ale u mnie nie dziala a pozatym u mnie musi byc taka postac pliku jak przedstawilem. Pozatym nr ip sa dobrze odczytywane bo do blokady iptables dzialaja wiec blad jest gdzies w skrypcie
Nitro
Coż, może ktoś inny będzie w stanie Ci pomóc.
_scorpio__
No coz moze ktos bedzie mial inny pomysl ale mimo wszsytko dziekuje nitro tylko mi jeszcze powiedz czemu z odstepami nie chodzi a bez chodzi
Nitro
Bez odstępów wygląda to tak:
Kod
$pol=fsockopen("212.77.100.101", 80, $_, $_, 3);

Z odstępami:
Kod
$pol=fsockopen(" 212.77.100.101", 80, $_, $_, 3);

czyli adres IP jest poprzedzony spacją. Możesz co prawda zamienić linię:
Kod
list($nick,$zm2,$zm3,$ip)=explode("||",trim($row));

na:
Kod
list($nick,$zm2,$zm3,$ip)=explode("|| ",trim($row));

i wtedy także z tymi dodatkowymi spacjami działa, ale według mnie jest to już zbędne kombinowanie.
_scorpio__
Dzieki nitro jedna musialo byc tak jak zes mowil :oops: Juz mi dziala dzieki wielkie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.