Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzanie dostepnosci hosta - Problem
Forum PHP.pl > Forum > PHP
flasht
Prosze zerknac na kod i powiedziec mi co jest zle... sad.gif
Dlaczego nie dziala sprawdzanie hostow? - znaczy dziala ale tylko ostatniego - a reszte pisze zawsze offline - zobaczcie http://theweed.org/check.php - pierwszy i ostatni host jest TEN SAM!

Dlaczego powstaja puste miejsca przed tabelka (tyle pustego ile tabelka zajmuje)?

Kod: http://theweed.org/check.phps

Dziekuje!
rzseattle
Prosze poprawic temat postu na bardziej adekwatny do problemu.
Lucky
rolleyes.gif oho, z tego kodu nie za wiele się odczyta, a tabelka ...

Myślę że nie obejdzie się bez pokazania kodu na forum.
flasht
wystarczy kliknac prawym i "pokaz zrodlo" smile.gif
Lucky
hmmm.... Najpierw usuń znak @ sprzed fsockopen(). Zobaczysz co się dzieje. I wydaje mi się (tzn. nie jestem pewny), że w linijce z F sock open możesz zrobić coś takiego:

$churl = @fsockopen($ipy[$i], (double)$porty[$i], $errno, $errstr, 20);

Ale nie wiem czy to pomoże... :? Musisz sprawdzić.
flasht
Czesciowo tak, ale w sumie nie...
Tabelka sie skrocila przez to do 2-ch pozycji (nie rozumiem czemu)...
A usuniecie @ nic nie zmienia...

Oto z double:
http://theweed.org/check2d.php

Oto bez double:
http://theweed.org/check2.php

Nie wspominajac juz o tym ze z double duuuzo wolniej dziala... (czegokolwiek by to nie robilo)
kszychu
[php:1:fcc5660a36]<?php
// popraw
$churl = @fsockopen($ipy[$i], $porty[$i], $errno, $errstr, 20);
// na
$churl = @fsockopen(rtrim($ipy[$i]), rtrim($porty[$i]), $errno, $errstr, 20);
?>[/php:1:fcc5660a36]
A dlaczego?
Cytat
array file ( string nazwa_pliku [, int użyj_include_path])


Działa identycznie jak readfile(), tylko że file() zwraca plik w tablicy. Każdy element tablicy odpowiada linii w pliku. Elementy tablicy zawierają znak nowej linii.


BTW.
[php:1:fcc5660a36]<?php
for ($i = 0; $i <= count($ipy)-1; $i++)
// nie krócej będzie
for ($i = 0; $i < count($ipy); $i++)
?>[/php:1:fcc5660a36]
scanner
Cytat
BTW.[php:1:6bbebe4e00]<?php
for ($i = 0; $i <= count($ipy)-1; $i++)
// nie krócej będzie
for ($i = 0; $i < count($ipy); $i++)
?>[/php:1:6bbebe4e00]
[php:1:6bbebe4e00]<?php
// a tak będzie ekonomiczniej czasowo
for ($i = 0, $max = count($ipy); $i < $max; $i++)
?>[/php:1:6bbebe4e00]
kszychu
Cytat
[php:1:691ed35965]<?php
// a tak będzie ekonomiczniej czasowo
for ($i = 0, $max = count($ipy); $i < $max; $i++)
?>[/php:1:691ed35965]

A nie wiesz jaka procentowo będzie to oszczędność? Pytam poważnie, bo nigdy nie patrzyłem pod tym kontem na środkową część for. A dość często używam for'a z tablicami.
-------------------------------------
Sam sprawdziłem i włos zjerzył mi się na głowie jak zobaczyłem wyniki. Zainteresowanym mogę podesłać test, który przeprowadziłem.
flasht
Cytat
[php:1:90dffdbe75]<?php
// popraw
$churl = @fsockopen($ipy[$i], $porty[$i], $errno, $errstr, 20);
// na
$churl = @fsockopen(rtrim($ipy[$i]), rtrim($porty[$i]), $errno, $errstr, 20);
?>[/php:1:90dffdbe75]


Hmmm... tabelka nadal ma tylko 2 pozycje teraz :/
http://theweed.org/check3.php
http://theweed.org/check3.phps
http://theweed.org/ip.txt

Cytat
BTW.
[php:1:90dffdbe75]<?php
for ($i = 0; $i <= count($ipy)-1; $i++)
// nie krócej będzie
for ($i = 0; $i < count($ipy); $i++)
?>[/php:1:90dffdbe75]


ano smile.gif
flasht
nikt mi nie pomoze.... ? sad.gif
kszychu
Nie łam się tylko myśl! Jeżeli tabelka ma dwie pozycje to czymś to musi byc spowodowane. Może zmienna sterująca pętlą z jakiegoś powodu odlicza tylko do dwóch. Sprawdź to. Wyprintuj sobie zmienne, sprawdź ich wartości, pousuwaj @ sprzed funkcji, sprawi to, że funkcje zwrócą ci ewentualne błędy. Postaraj się sam sobie pomóc.

Ktoś ostatnio powiedział, że internet oducza samodzielności, bo z każdą pierdułą ludzie lecą na grupę. Kiedyś nie było internetu i programista był zdany wyłącznie na siebie, ale to przynajmniej uczyło pewnych niezbędnych nawyków.

A wracając do tematu, coś ci się wywala po drugiej iteracji, bo nie rysuje reszty tabelki ani dołu strony. Sam byś na to wpadł, gdybyś podejrzał źródło strony...
arogancik
szczerze mówiąc nie wiem na czym polega problem bo u mnie ten skrypt działą bezbłednie i nic nie przerwya i mam prose zebys skopiował zawrtośc plikw i wstawił na forum, bo coś mi się wydaje ze w nich coś jest nie tak.
ja stworzyłęm sam pliki skopiowałem twoja źródła i działa biggrin.gif
flasht
check3.php
[php:1:5af04e7531]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Proxy Servers</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body,td,th {
font-size: 12px;
color: #FFFFFF;
}
body {
background-color: #000000;
}
.zielony {color: #00CC00}
.czerwony {color: #990000}
.zolty {color: #FFFF00}
-->
</style></head>
<body>

<div align="center">
<table width="456" border="0">
<tr bgcolor="#355460">
<td width="30%" bgcolor="#355460">IP</td>
<td width="10%" bgcolor="#355460">Port</td>
<td width="30%" bgcolor="#355460">Type</td>
<td width="30%" bgcolor="#355460"><p>Status</p> </td>
</tr>

<?php
$ipy = file('ip.txt');
$porty = file('port.txt');
$typy = file('type.txt');

for ($i = 0; $i < count($ipy); $i++) {
$churl = @fsockopen(rtrim($ipy[$i]), rtrim($porty[$i]), $errno, $errstr, 20);
if (!$churl)
{ $stat='<span class="czerwony">Offline</span>'; } else
{ $stat='<span class="zielony">Online</span>'; }

echo ('<tr bgcolor="#456D7C">' .
'<td>' . $ipy[$i] . '</td>
<td>' . $porty[$i] . '</td>
<td>' . $typy[$i] . '</td>
<td>' . $stat .'</td></tr>');

}
?>
</table>
<p>© Copyright Tasiemiec in The Wolf Entertainment aka Aragorn </p>
</div>
</body>
</html>

[/php:1:5af04e7531]
arogancik
ja u siebie na kompie wziełem tylko fragmnet z tabelką zebybyło mniej i to nie ma napewno wpływu, jedyna róznica jest taka ze ja sprawdzam wszystkie hosty po porcie 80 i podałęm adresy serwerów które napewno mają otwarty ten port, nie wiem jak to wygląda u ciebie?questionmark.gif a nie zwraca ci php jakiś b łedów?questionmark.gif np ze przekroczono maksyamalny limit czasu na wykonanie skryptu questionmark.gifquestionmark.gif
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-2025 Invision Power Services, Inc.