0
이 코드를 사용하여 fsockopen을 검사했는데이 기능을 사용할 수 있습니다.fsockopen()이 활성화되었지만 작동하지 않습니다.
<?php
if(function_exists('fsockopen')) {
echo "fsockopen function is enabled";
}
else {
echo "fsockopen is not enabled";
}
?>
다음은 내가 작업해야하는 스크립트에서 사용되는 코드입니다. 이 오류를 반환 다음은 fsockopen 기능이 작동하지 않는 오류 : (110) 연결 시간이 초과되었습니다 -
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") $url = "https://";
else $url = "http://";
$url .= $HTTP_HOST.$REQUEST_URI;
$querystring = "action=fsockopentest";
if (@strpos($url, "/", 8)) {
$urlpath = "/".substr($url, strpos($url, "/", 8)+1);
$urldomain = substr($url, 0, strpos($url, "/", 8));
} else {
$urlpath = "/";
$urldomain = $url;
}
$urldomain = str_replace("http://", "", $urldomain);
$postheader = "POST $urlpath HTTP/1.0\r\nHost: $urldomain\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen ($querystring)."\r\n\r\n";
$fp = @fsockopen ($urldomain, 80, $errno, $errstr, 10);
$res = "";
if ($fp) {
fputs ($fp, $postheader.$querystring);
while (!feof($fp)) $res .= fgets ($fp, 1024);
fclose ($fp);
}
if (strstr($res,"SUCCESS")) echo "<li>The fsockopen-function is working - <font color=\"#009900\">PASSED</font></li>";
else echo "<li>The fsockopen-function isn't working, error: $errno $errstr - <font color=\"#FF0000\">FAILED</font></li>";
echo "</ul>";
을 실패 잘못 될 수 무엇입니까?
많은 일이 잘못되었을 수 있습니다. 어디로 연결되어 있습니까? – zerkms
'fsockopen()'으로 호스트 이름을 결정할 때 잘못되었을 수있는 직접 작성한 코드가 많이 있습니다. 대신에 [''parse_url()'] (http://us2.php.net/manual/en/function.parse-url.php)을 사용할 것을 제안 할 수 있습니까? – Sammitch