오늘 웹 서버 관리자로부터 "귀하의 서비스가 약 60GB의 오류 파일로 인해 일시 중지되었습니다 .FTP를 통해 errorlog.txt를 확인하십시오."라는 이메일을 받았습니다.PHP에서 fgetc() 매개 변수 오류가 발생했습니다.
<?
header("X-XSS-Protection: 0");
$filename= $_GET['filename'];
$code = $_POST['code'];
if (isset($filename))
{
$go = $filename;
$full = "docs/$filename.htm";
$filename = @fopen($full , 'r');
$file_size = filesize($full);
while (! feof($filename)) //line 11
{
$char = fgetc ($filename); //line13
$code .= "$char";
}
fclose($filename);
}
$code = str_replace("\\", "", $code);
$code = str_replace(">", ">", $code);
$code = str_replace("=", "=", $code);
$code = str_replace("<", "<", $code);
printf("%s",$code);
?>
문제가 여기에 무엇 : 상대 코드 조각이 여기
[Tue Apr 04 08:45:52 2017] [error] [client xxx.xxx.xxx.xxx] PHP Warning: feof() expects parameter 1 to be resource, boolean given in /var/www/vhosts/.../httpdocs/dene.php on line 11
[Tue Apr 04 08:45:52 2017] [error] [client xxx.xxx.xxx.xxx] PHP Warning: fgetc() expects parameter 1 to be resource, boolean given in /var/www/vhosts/.../httpdocs/dene.php on line 13
그리고 : 로그 파일에서이 단 두 줄이 repeteadly입니까? 미리 감사드립니다 ...
[* "'fopen'이 :. error__에 파일 포인터의 성공에 자원, __or FALSE를 돌려"* (http://php.net/manual php manual에서
/en/function.fopen.php#refsect1-function.fopen-returnvalues) –