테스트 사이트 - 개발 중인 베타 버전입니다

잉여 첨부파일 검색 팁을 봤는데요. 채택완료

웹스토리2 9년 전 조회 2,061

아래 같은 소스를 보고 적용 시키니까 잘 되는거 같은데요

 

문제가 빌더를 쓰고 있는데 data/file 아래에 자동으로 생성 되는 폴더들 까지 디비에 없다고 떠버리네요. 

 

폴더 까지 카운팅이 되버립니다 ㅠㅠ

 

아래 소스에서 폴더는 안나오게 할수 없을까요? 파일만 검사 하는게 아니라 폴더 까지 나와버리네요.ㅠㅠ

 

 

 

$sub_menu = '100920';

include_once('./_common.php');

 

if ($is_admin != 'super')

alert('최고관리자만 접근 가능합니다.', G5_URL);

 

$g5['title'] = '첨부파일 디비확인';

include_once('./admin.head.php');

?>

 

완료 메세지가 나오기 전에 프로그램의 실행을 중지하지 마십시오.

 

$directory = array();

$dl = array('file');

 

$cnt = 0; $cnt2 = 0;

echo '

    '.PHP_EOL;

     

    foreach($dl as $val) {

    if($handle = opendir(G5_DATA_PATH.'/'.$val)) {

    while(false !== ($entry = readdir($handle))) {

    if($entry == '.' || $entry == '..' || $entry == 'index.php')

    continue;

     

    $path = G5_DATA_PATH.'/'.$val.'/'.$entry;

     

    if(is_dir($path)) {

    $directory[] = array( $val, $entry, $path );

    }

     

    if($handle2 = opendir($path)) {

    while(false !== ($entry2 = readdir($handle2))) {

    if($entry2 == '.' || $entry2 == '..' || $entry2 == 'index.php' || $entry2 == 'thumb')

    continue;

     

    $cnt++;

    $row = sql_fetch(" select bf_source from {$g5['board_file_table']} where bo_table = '{$entry}' and bf_file = '{$entry2}' ");

     

    if (!$row['bf_source']) {

    $cnt2++;

    echo "

  • 파일이 디비에 없습니다. - " . $path . "/" . $entry2 . "
  • \n";

    }

    flush();

     

    }

    }

     

    }

    }

    }

     

    if (empty($directory)) {

    echo '

    file 디렉토리를 열지못했습니다.

    ';

    }

     

    echo '

  • 완료됨
'.PHP_EOL;

echo '

첨부파일 '.$cnt.' 건 중 '.$cnt2.' 개가 검색되었습니다. 프로그램의 실행을 끝마치셔도 좋습니다.

'.PHP_EOL;

?>

 

include_once('./admin.tail.php');

?>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
9년 전

if($entry2 == '.' || $entry2 == '..' || $entry2 == 'index.php' || $entry2 == 'thumb') continue;

여기를

if(!is_file($entry2) || $entry2 == '.' || $entry2 == '..' || $entry2 == 'index.php' || $entry2 == 'thumb') continue;

이렇게 해보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

웹스토리2
9년 전
이렇게 하니까 디렉토리가 안나오는데 잉여 파일도 같이 안나옵니다 ㅠㅠ;
먼지손
9년 전
비슷한 if문이 두개인데 윗쪽껄 바꾸신건 아니죠?
파일이 아닐때만 패스하라는 거여서 파일이 안나올 일은 없는데요...
혹시 is_file 앞에 ! 이거 빼먹으신건 아닌지 다시 한 번 소스 확인해보세요.
웹스토리2
9년 전
아예 첨부파일 0건으로 뜨고 잉여파일도 안뜨네요 ㅠ.ㅠ if(!is_file($entry2) || $entry2 == '.' || $entry2 == '..' || $entry2 == 'index.php' || $entry2 == 'thumb') continue; 로 교체 해줬습니다!!
먼지손
9년 전
이크.. 제가 정신이 없었네요 ^^;
경로가 빠졌었네요.
!is_file($path.'/'.$entry2)
이렇게 되야 합니다.
웹스토리2
9년 전
잘됩니다~!!! 도움 감사드립니다~!!!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인