잉여 첨부파일 검색 팁을 봤는데요.

잉여 첨부파일 검색 팁을 봤는데요.

QA

잉여 첨부파일 검색 팁을 봤는데요.

본문

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

 

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

 

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

 

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

 

 

 

<?php

$sub_menu = '100920';

include_once('./_common.php');

 

if ($is_admin != 'super')

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

 

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

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

?>

 

<div class="local_desc02 local_desc">

<p>

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

</p>

</div>

 

<?php

$directory = array();

$dl = array('file');

 

$cnt = 0; $cnt2 = 0;

echo '<ul>'.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 "<li>파일이 디비에 없습니다. - " . $path . "/" . $entry2 . "</li>\n";

}

flush();

 

}

}

 

}

}

}

 

if (empty($directory)) {

echo '<p>file 디렉토리를 열지못했습니다.</p>';

}

 

echo '<li>완료됨</li></ul>'.PHP_EOL;

echo '<div class="local_desc01 local_desc"><p><strong>첨부파일 '.$cnt.' 건 중 '.$cnt2.' 개가 검색되었습니다.</strong><br>프로그램의 실행을 끝마치셔도 좋습니다.</p></div>'.PHP_EOL;

?>

 

<?php

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

?>

이 질문에 댓글 쓰기 :

답변 1

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

여기를

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

이렇게 해보세요.

비슷한 if문이 두개인데 윗쪽껄 바꾸신건 아니죠?
파일이 아닐때만 패스하라는 거여서 파일이 안나올 일은 없는데요...
혹시 is_file 앞에 ! 이거 빼먹으신건 아닌지 다시 한 번 소스 확인해보세요.

아예 첨부파일 0건으로 뜨고 잉여파일도 안뜨네요 ㅠ.ㅠ if(!is_file($entry2) || $entry2 == '.' || $entry2 == '..' || $entry2 == 'index.php' || $entry2 == 'thumb') continue; 로 교체 해줬습니다!!

답변을 작성하시기 전에 로그인 해주세요.
전체 28
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT