Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: FTP || Połączenie
Forum PHP.pl > Forum > PHP
sajborg
Siemka mam taki kod

[php:1:897dc9f30e]<?php
$que = "SELECT ip FROM ftpdata WHERE threadid='$id'";
$do = mysql_query($que);
$do1 = mysql_query($que1);
$row = mysql_fetch_array($do);
$ip=$row['ip'];
$ftp=explode(":",$ip);
echo"<font face="verdana" size="1"><b>Viewing status stro</b></font>";
?>
</td>
</tr>
<tr>
</tr>
</table>
<?
$result=ftp_connect($ftp[0],$ftp[1]);
if (!$result) {
echo '<center><font face="verdana" size="1">Serwer nie działa</font></center>';
}
else{
echo '<center><font face="verdana" size="1">Serwer jest włączony</font></center>';
}
?>[/php:1:897dc9f30e]

I wszystko działa jak serwer jest włączony ale jak jest wyłączony to nie działa wyskakuje taki błąd



Kod
Warning: ftp_connect() [function.ftp-connect]: php_hostconnect: connect failed in g:wwwwbstatus.php on line 183



Fatal error: Maximum execution time of 30 seconds exceeded in g:wwwwbstatus.php on line 183



Fatal error: Maximum execution time of 30 seconds exceeded in g:wwwwbadminfunctions.php on line 2324


To jest na forum vb
POLVIP
to jest prawidlowa odpowiedz od php

chyba wiem o co ci tutaj chodzi - chcesz zobaczyc ktory server dziala a ktory nie. Jesli tak to mam na to troche lepsze rozwiazanie jakie ja uzywam na sprawdzenie status na ftp

[php:1:fba1f6f201]<?php
error_reporting(0);
function is_online($server,$port) {
$timeout=2;
$fp = fsockopen($server, $port, &$errno, &$errstr, $timeout);

if (!$fp)
return false;
else
{
fclose($fp);
return true;
}
}
printf("<br>FTP is %s",is_online('6.23.32.45',21) ? "online" : "offline");
printf("<br>HTTP is %s",is_online('6.23.32.45',80) ? "online" : "offline");
printf("<br>SNMP is %s",is_online('6.23.32.45',161) ? "online" : "offline");
printf("<br>SSH is %s",is_online('6.23.32.45',22) ? "online" : "offline");
?>[/php:1:fba1f6f201]

jesli chcesz wylaczyc ten error u ciebie wpisz : error_reporting(0);

To jest tylko na jeden server, polaczenie tego z DB jest latwe wiec nie sadze abys mial jakis problem i nie pisalem tego. Oprocz tego mam to bardziej rozbudowane na mojej stronie.
sajborg
A mozesz pokazać inne sposoby.Zobacze różne kobinacje smile.gif
POLVIP
jakich kombinacji szukasz?
jest ich wiele. Jesli napiszesz jak chcesz to wykorzystac to mozna wtedy napisac cos dla tego
Bakus
Zamiast:
[php:1:f94404f8ff]<?php
$result=ftp_connect($ftp[0],$ftp[1]);
if (!$result) {
?>[/php:1:f94404f8ff]
Zastosój:
[php:1:f94404f8ff]<?php
if (!@ftp_connect($ftp[0],$ftp[1])) {
?>[/php:1:f94404f8ff]
@ przed wywołaniem funkcji spowoduje wywołanie jej w trybie cichym - bez wyświetlania userowi przyczyny błędu, a w przypadku wystąpienia takowego zwróci z funkcji FALSE...
sajborg
Ten kodzin co mi podałes Bakus nie działa nic sie nie wyswietla jest jest serwer wyłączony.A ten kod

[php:1:f6fa536130]<?php
error_reporting(0);
function is_online($server,$port) {
$timeout=2;
$fp =fsockopen($server, $port, &$errno, &$errstr, $timeout);

if (!$fp)
return false;
else
{
fclose($fp);
return true;
}
}
printf("<center><br>FTP is %s",is_online('$ftp[0]',$ftp[1]) ? "Online</center><br>" : "Offline</center><br>");
?>
[/php:1:f6fa536130]
Cały czas wyswietla Offline nawet jak serwer jest włączony
sajborg
Juz sobie poradziłem dałem timeout na 3 i działa smile.gif
POLVIP
Wyglada na to ze twoj server ma problem z "respond time".
Wiekszkosc serverow powinna dzialac ponizej 3 sekund ale znam przypadki gdzie serwer byl w "domku" na cable lub dsl i zajelo 8-10 secund zanim sie polaczyl.
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.