ďťż

[php] fsockopen-błąd skryptu statystyk zapraszam ekspertów...

       

Podstrony


telcocafe

Witam ! Mam na stronie skrypt statystyk shout cast'a na serwerze ovh. Cały czas wyświetla się jakiś błąd czy coś (zaraz podam link do obrazka). Czy to da się zmienić czy ovh ma ograniczenia ? Jak ma to bardzo prosze podać jakiś darmowy hosting bez ograniczeń php. Na hostingu osemka lub host.sk statystyki wcale nie działają ( zabraniają dostępu do połączeń?) PLZ o odpowiedzi szybkie.
Obrazek



Chyba ta funkcja jest po prostu wyłączona na tym serwerze...

Hh... Otwórz plik staty.php, i przejdź do linii 138, tam powinno być wywołanie funkcji fsockopen, zgadza sie? Usuń znaki & przed nazwami zmiennych w wywołaniu funkcji, to powinno pomóc.

hmm... No i co tu dużo pisać- Jesteś Pro zaawansowanym programistą :) Wielkie dzięki. Już się to nie wyświetla :). Znalazłem jeden niemiecki hosting i tam pisało w info o php: fsockopen: disabled czy jakoś tak,choć staty sie wyświetlały ale był napis:
Warning: fsockopen() has been disabled for security reasons in /usr/export/www/vhosts/funnetwork/hosting/kameleonbfv/staty.php on line 19 więc sa ograniczenia. Ale i tak zostane przy ovh :P. Mam tylko takie jedno pytanie: Jak mam włączone radio (czyli coś gra) to stronka się szybko ładuje ale jak wyłącze shoutcasta to baardzo długo się ładuje, ponieważ staty chcą się połączyć z moim IP (ale np. komp wyłączony) i nie może. Czy dało się by przyspieszyć to, np. po 5 sekundach nieudanych połączeń wyświetliła się strona ? Daje kod statystyk:
<? $sc[czas] = 5; $sc[host] = "83.30.35.59"; $sc[port] = 8000; $sc[template1] = "<b>[radio]</b>"; $sc[template2] = "<b>[aim]</b>"; if($fp = fsockopen($sc[host], $sc[port])) { fputs($fp,"GET /index.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n"); fgets($fp);fgets($fp);fgets($fp); while(!feof($fp)) $in.=strip_tags(fgets($fp)); fclose($fp); // [status] $m[0]="Server is currently"; $m[1]=""; $mp[0]=strpos($in,$m[0]); $mp[1]=@strpos($in,$m[1]); $ml[0]=strlen($m[0]); $ml[1]=strlen($m[1]); $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , 5 ) ) ); if( $tmp[1][0] == "up" ) $dat[status] = "On"; elseif( $tmp[1][0] == "down" ) $dat[status] = "Off"; else $dat[status] = "err"; if($dat[status]=="On") { // [radio] $m[0]="Stream Title:"; $m[1]="Content Type:"; $mp[0]=strpos($in,$m[0]); $mp[1]=strpos($in,$m[1]); $ml[0]=strlen($m[0]); $ml[1]=strlen($m[1]); $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) ); if( $tmp[1] ) $dat[radio] = $tmp[1]; else $dat[radio] = "err"; // [aim] $m[0]="Stream AIM:"; $m[1]="Stream IRC:"; $mp[0]=strpos($in,$m[0]); $mp[1]=strpos($in,$m[1]); $ml[0]=strlen($m[0]); $ml[1]=strlen($m[1]); $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) ); if( $tmp[1] ) $dat[aim] = $tmp[1]; else $dat[aim] = "err"; // [genre] $m[0]="Stream Genre:"; $m[1]="Stream URL:"; $mp[0]=strpos($in,$m[0]); $mp[1]=strpos($in,$m[1]); $ml[0]=strlen($m[0]); $ml[1]=strlen($m[1]); $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) ); if( $tmp[1] ) $dat[genre] = $tmp[1]; else $dat[genre] = "err"; // [ile] $m[0]="kbps with"; $m[1]="listeners"; $mp[0]=strpos($in,$m[0]); $mp[1]=strpos($in,$m[1]); $ml[0]=strlen($m[0]); $ml[1]=strlen($m[1]); $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) ) ); if( $tmp[1] ) $dat[ile] = $tmp[1][0]; else $dat[ile] = "err"; // [max] $m[0]="kbps with"; $m[1]="listeners"; $mp[0]=strpos($in,$m[0]); $mp[1]=strpos($in,$m[1]); $ml[0]=strlen($m[0]); $ml[1]=strlen($m[1]); $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) ) ); if( $tmp[1] ) $dat[max] = $tmp[1][2]; else $dat[max] = "err"; // [peak] $m[0]="Listener Peak:"; $m[1]="Average"; $mp[0]=strpos($in,$m[0]); $mp[1]=strpos($in,$m[1]); $ml[0]=strlen($m[0]); $ml[1]=strlen($m[1]); $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-7) ); if( $tmp[1] ) $dat[peak] = $tmp[1]; else $dat[peak] = "err"; } } else { $dat=array(); $dat[status]="err"; } $co = array('[status]','[radio]','[aim]','[genre] ','[ile]','[max]','[peak]'); $naco = array($dat[status],$dat[radio],$dat[aim],$dat[genre] ,$dat[ile],$dat[max],$dat[peak]); $sc[template1] = str_replace($co,$naco,$sc[template1]); $sc[template2] = str_replace($co,$naco,$sc[template2]); $fp1 = @fsockopen($sc[host], $sc[port], $errno, $errstr, 10); if (!$fp1) { $text = "Aktualnie nie nadajemy"; } else { fputs($fp1, "GET /7 HTTP/1.1\nUser-Agent:Mozilla\n\n"); for($i = 0; $i < 1; $i++) { if (feof($fp1)) break; $fp_data1 = fread($fp1, 31337); usleep(500000); } $fp_data1 = ereg_replace("^.*<body>", "", $fp_data1); $fp_data1 = ereg_replace("</body>.*", "", $fp_data1); list($current1, $status1, $peak1, $max1, $reported1, $bit1, $song1) = explode(",", $fp_data1, 7); if ($status1 == "1") $text = "$song1"; else $text = "Aktualnie nie nadajemy"; } // TU WSTAW ADRESY DO ZDJEC DJ'OW - WEDLUG WZORU if ($dat[aim] == "AutoPilot") $fotka = "staty/pilot.jpg"; else $fotka = "staty/brak.gif"; ?> <table cellspacing="0" cellpadding="0" height="216" width="140" border="0" background="staty/tlo.gif"> <tr><td width ="100%" height ="19" colspan ="2"> <center><font size ="2" face ="Verdana" color ="black"><b> Radio TrAcEr </b><br></font></center> </td></tr> <tr><td width ="80%" height ="15" valign ="top" colspan ="2"> <center><font size ="1" face ="Arial"><b> <A href="xxx" target ="_blank"><font color ="brown">xxx</font></A> </b><br></font></center> </td></tr> <tr><td width ="100%" height ="15" colspan ="2"> </td></tr> <tr><td width ="100%" height ="17" valign ="top" colspan ="2"> <center><font size ="2" face ="Courier" color ="black"><b> <MARQUEE width="80%" SCROLLAMOUNT="4" behavior ="scroll" onmouseover='this.stop()' onmouseout='this.start()'> <? echo $sc[template1]; ?> </MARQUEE> </font></center> </td></tr> <tr><td width ="100%" height ="15" colspan ="2"> </td></tr> <tr><td width ="100%" height ="17" valign ="top" colspan ="2"> <center><font size ="2" face ="Courier" color ="black"><b> <MARQUEE width="80%" SCROLLAMOUNT="4" behavior ="scroll" onmouseover='this.stop()' onmouseout='this.start()'> <? echo $text; ?> </MARQUEE> </font></center> </td></tr> <tr><td width ="100%" height ="15" colspan ="2"> </td></tr> <tr><td width ="100%" height ="17" valign ="top" colspan ="2"> <center><font size ="2" face ="Courier" color ="black"><b> <MARQUEE width="80%" SCROLLAMOUNT="4" behavior ="alternate" onmouseover='this.stop()' onmouseout='this.start()'> <? echo $sc[template2]; ?> </MARQUEE> </font></center> </td></tr> <tr><td width ="100%" height ="6" colspan ="2"> </td></tr> <tr><td width ="65" height ="80" valign ="top"> <a href ="xxx"><img src="staty/separ.gif" width ="65" height ="70" border ="0"></a><br clear ="all"> <td width ="75" height ="80" valign ="top"> <? print "<img src='$fotka' width ='62' height ='70'>"; ?> <br clear ="all"> </td></tr> </table>
Na php się nie znam więc prosze o pomoc.



Da się... timeouta można ustawić jako 5 parametr, czyli może to wyglądać tak:
fsockopen('address', 12, $errno, $errstr, 5); // ta 5 na końcu to właśnie czas po którym skrypt przestanie próbować się łączyć

<? $sc['timeout'] = 5; $sc[czas] = 5; $sc[host] = "83.30.35.59"; $sc[port] = 8000; $sc[template1] = "<b>[radio]</b>"; $sc[template2] = "<b>[aim]</b>"; $errno = 0; $errstr = ''; if($fp = fsockopen($sc[host], $sc[port], $errno, $errstr, $sc['timeout'])) { fputs($fp,"GET /index.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n"); fgets($fp);fgets($fp);fgets($fp); while(!feof($fp)) $in.=strip_tags(fgets($fp)); fclose($fp); // [status] $m[0]="Server is currently"; $m[1]=""; $mp[0]=strpos($in,$m[0]); $mp[1]=@strpos($in,$m[1]); $ml[0]=strlen($m[0]); $ml[1]=strlen($m[1]); $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , 5 ) ) ); if( $tmp[1][0] == "up" ) $dat[status] = "On"; elseif( $tmp[1][0] == "down" ) $dat[status] = "Off"; else $dat[status] = "err"; if($dat[status]=="On") { // [radio] $m[0]="Stream Title:"; $m[1]="Content Type:"; $mp[0]=strpos($in,$m[0]); $mp[1]=strpos($in,$m[1]); $ml[0]=strlen($m[0]); $ml[1]=strlen($m[1]); $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) ); if( $tmp[1] ) $dat[radio] = $tmp[1]; else $dat[radio] = "err"; // [aim] $m[0]="Stream AIM:"; $m[1]="Stream IRC:"; $mp[0]=strpos($in,$m[0]); $mp[1]=strpos($in,$m[1]); $ml[0]=strlen($m[0]); $ml[1]=strlen($m[1]); $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) ); if( $tmp[1] ) $dat[aim] = $tmp[1]; else $dat[aim] = "err"; // [genre] $m[0]="Stream Genre:"; $m[1]="Stream URL:"; $mp[0]=strpos($in,$m[0]); $mp[1]=strpos($in,$m[1]); $ml[0]=strlen($m[0]); $ml[1]=strlen($m[1]); $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) ); if( $tmp[1] ) $dat[genre] = $tmp[1]; else $dat[genre] = "err"; // [ile] $m[0]="kbps with"; $m[1]="listeners"; $mp[0]=strpos($in,$m[0]); $mp[1]=strpos($in,$m[1]); $ml[0]=strlen($m[0]); $ml[1]=strlen($m[1]); $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) ) ); if( $tmp[1] ) $dat[ile] = $tmp[1][0]; else $dat[ile] = "err"; // [max] $m[0]="kbps with"; $m[1]="listeners"; $mp[0]=strpos($in,$m[0]); $mp[1]=strpos($in,$m[1]); $ml[0]=strlen($m[0]); $ml[1]=strlen($m[1]); $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) ) ); if( $tmp[1] ) $dat[max] = $tmp[1][2]; else $dat[max] = "err"; // [peak] $m[0]="Listener Peak:"; $m[1]="Average"; $mp[0]=strpos($in,$m[0]); $mp[1]=strpos($in,$m[1]); $ml[0]=strlen($m[0]); $ml[1]=strlen($m[1]); $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-7) ); if( $tmp[1] ) $dat[peak] = $tmp[1]; else $dat[peak] = "err"; } } else { $dat=array(); $dat[status]="err"; } $co = array('[status]','[radio]','[aim]','[genre] ','[ile]','[max]','[peak]'); $naco = array($dat[status],$dat[radio],$dat[aim],$dat[genre] ,$dat[ile],$dat[max],$dat[peak]); $sc[template1] = str_replace($co,$naco,$sc[template1]); $sc[template2] = str_replace($co,$naco,$sc[template2]); $fp1 = @fsockopen($sc[host], $sc[port], $errno, $errstr, 10); if (!$fp1) { $text = "Aktualnie nie nadajemy"; } else { fputs($fp1, "GET /7 HTTP/1.1\nUser-Agent:Mozilla\n\n"); for($i = 0; $i < 1; $i++) { if (feof($fp1)) break; $fp_data1 = fread($fp1, 31337); usleep(500000); } $fp_data1 = ereg_replace("^.*<body>", "", $fp_data1); $fp_data1 = ereg_replace("</body>.*", "", $fp_data1); list($current1, $status1, $peak1, $max1, $reported1, $bit1, $song1) = explode(",", $fp_data1, 7); if ($status1 == "1") $text = "$song1"; else $text = "Aktualnie nie nadajemy"; } // TU WSTAW ADRESY DO ZDJEC DJ'OW - WEDLUG WZORU if ($dat[aim] == "AutoPilot") $fotka = "staty/pilot.jpg"; else $fotka = "staty/brak.gif"; ?> <table cellspacing="0" cellpadding="0" height="216" width="140" border="0" background="staty/tlo.gif"> <tr><td width ="100%" height ="19" colspan ="2"> <center><font size ="2" face ="Verdana" color ="black"><b> Radio TrAcEr </b><br></font></center> </td></tr> <tr><td width ="80%" height ="15" valign ="top" colspan ="2"> <center><font size ="1" face ="Arial"><b> <A href="xxx" target ="_blank"><font color ="brown">xxx</font></A> </b><br></font></center> </td></tr> <tr><td width ="100%" height ="15" colspan ="2"> </td></tr> <tr><td width ="100%" height ="17" valign ="top" colspan ="2"> <center><font size ="2" face ="Courier" color ="black"><b> <MARQUEE width="80%" SCROLLAMOUNT="4" behavior ="scroll" onmouseover='this.stop()' onmouseout='this.start()'> <? echo $sc[template1]; ?> </MARQUEE> </font></center> </td></tr> <tr><td width ="100%" height ="15" colspan ="2"> </td></tr> <tr><td width ="100%" height ="17" valign ="top" colspan ="2"> <center><font size ="2" face ="Courier" color ="black"><b> <MARQUEE width="80%" SCROLLAMOUNT="4" behavior ="scroll" onmouseover='this.stop()' onmouseout='this.start()'> <? echo $text; ?> </MARQUEE> </font></center> </td></tr> <tr><td width ="100%" height ="15" colspan ="2"> </td></tr> <tr><td width ="100%" height ="17" valign ="top" colspan ="2"> <center><font size ="2" face ="Courier" color ="black"><b> <MARQUEE width="80%" SCROLLAMOUNT="4" behavior ="alternate" onmouseover='this.stop()' onmouseout='this.start()'> <? echo $sc[template2]; ?> </MARQUEE> </font></center> </td></tr> <tr><td width ="100%" height ="6" colspan ="2"> </td></tr> <tr><td width ="65" height ="80" valign ="top"> <a href ="xxx"><img src="staty/separ.gif" width ="65" height ="70" border ="0"></a><br clear ="all"> <td width ="75" height ="80" valign ="top"> <? print "<img src='$fotka' width ='62' height ='70'>"; ?> <br clear ="all"> </td></tr> </table>

Nie wnikałem w cały kod, ale myśle, że moja poprawka (tylko w linii z fsockopen) jest wystarczające.
Co ciekawe ta składnia jest już zastosowana w tym skrypcie tutaj:
$fp1 = @fsockopen($sc[host], $sc[port], $errno, $errstr, 10); :)

Bardzo dziękuję :) Już nie ma żadnych problemów :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.