2010-04-30 3 views
0
<?php 
include_once('booter/login/includes/db.php'); 

$query="SELECT * FROM shells"; 
$result=mysql_query($query); 
while($row=mysql_fetch_array($result, MYSQL_ASSOC)){ 

$hash = @md5_file($row['url']); 
echo $hash . "<br>"; 
    } 
?> 

위 코드는 제 코드입니다. 일반적으로 대부분의 URL에서 완벽하게 작동하지만 매번 md5를 건너 뛰고 마치 파일을 가져 오지 않은 것처럼 파일이 존재하더라도.md5_file() 사용; 가끔 md5를 반환하지 않습니까?

이유를 알 수 없습니다. 어떤 아이디어?

편집

:은 제거 할 때 그것은이를 반환 '@'제기 될 수 md5_file suppresses any warnings/errors 앞에

[function.md5-file]: failed to open stream: No such file or directory

+0

$ row [ 'url']의 샘플 값은 무엇입니까? 그것은 프로토콜을 포함합니까? 프로토콜없이 URL을 열려고하면 URL이 실패하게됩니다. – jasonbar

+0

'http : // example.com/file.php' – Rob

답변

1

@. @을 제거하면 md5_hash의 오류가 표시되고 때때로 실패하는 이유를 확인할 수 있습니다.


은 단순히 검색된 이름의 파일이 없음을 의미합니다. 이러한 경고의 원인이되는 URL을 검사 할 수 있습니다. 어쩌면 이름이 바뀌거나 이동 된 파일을 참조 할 수 있습니다.

+0

내가 왜 그렇게 생각하지 않았는지 모르겠습니다. 주제 편집 됨 – Rob

+0

URL을 확인했습니다. 그것의 거기에 – Rob

+1

당신이 그것을 디버깅하려면, 당신이 어떤 오류를 치면 행 값을 출력하십시오. (PHP가 볼 수 있도록). 오류를 막으려면 MD5를 생성하기 전에 파일을 찾을 수 있는지 확인하십시오. – ssube

관련 문제