채택완료

회원가입에서 첨부파일 2개이상 받으려는데 도와주세요ㅠ

스킨받아서 회원가입 여분필드에 첨부파일 받는거 응용하고 있어요

업로드, 선택해서 삭제까지는 적용이 됐는데

수정할때마다 원하지않는 파일까지 삭제가 돼요ㅠㅠ

체크박스 선택을 하던 안하던 무조건 수정하면 모든 파일이 삭제돼요

(서버에는 남아있는데 삭제된걸로 처리?하는지 제대로 출력이 안되네요,,)

수정할때 업로드하는 파일이 있으면 새로 업로드한 파일만 남겨지고 나머지 모든 파일이 삭제돼요

제발제발 어떻게 고치면 되나여ㅠㅠ

여기서 막혀서 adm페이지는 손도 못대고 있습니다

도와주세여 고수님덜 ㄷㄷㄷㄷㄷㄷㄷㄷ 참고로 디자이너입니다.. 스스로 해보고 싶어서요ㅠㅠ

register_form.skin 파일 내용

Copy
<?php
for ($i=10; $i>6; $i--) {
                
    // 첨부파일 경로            
    $mb_img_path = G5_DATA_PATH.'/member/'.$member['mb_id'].'/'.$mb_.$i.'/'.$member['mb_'.$i];
    $mb_img_url  = G5_DATA_URL.'/member/'.$member['mb_id'].'/'.$mb_.$i.'/'.$member['mb_'.$i];

?>
    <input type="file" name="mb_<?=$i;?>" id="reg_mb_<?=$i;?>">
    <? if ($w == 'u' && file($mb_img_path)) { ?>
        <a href="<?=$mb_img_url?>" target="_target"><font color="red">사업자등록증</font></a>
        <input type="checkbox" name="del_mb_<?=$i;?>" value="1" id="del_mb_<?=$i;?>">
        <label for="del_mb_<?=$i;?>">삭제</label>
    <?  } ?>
<? } ?>

register_form_update 파일 내용

Copy
for ($i=10; $i>6; $i--) {
    // 첨부파일 경로
    $mb_dir = G5_DATA_PATH.'/member/'.$mb_id.'/'.$mb_.$i;

    // 파일 삭제 체크시
    $filename2 = $member['mb_'.$i];
    if (isset($_POST['del_mb_'.$i])) {
        @unlink($mb_dir.'/'.iconv("UTF-8","EUC-KR",$filename2));
        $sql = " update {$g5['member_table']} set mb_$i ='$mb_$i' where mb_id='$mb_id'" ;
        sql_query($sql);
    }

    // 파일 업로드
    $msg = "";
    $mb_10 = "";
    $mb_9 = "";
    $mb_8 = "";
    $mb_7 = "";

    if (isset($_FILES['mb_'.$i]) && is_uploaded_file($_FILES['mb_'.$i]['tmp_name'])) {
        if (preg_match("/(\.gif|jpg|png|jpeg)$/i", $_FILES['mb_'.$i]['name'])) {
            // 파일 용량이 설정값보다 이하만 업로드 가능
            if ($_FILES['mb_'.$i]['size'] <= $config['cf_member_img_size']) {
                @mkdir($mb_dir, G5_DIR_PERMISSION);
                @chmod($mb_dir, G5_DIR_PERMISSION);
                $dest_path = $mb_dir.'/'.$_FILES['mb_'.$i]['name'];

                // 수정시 기존파일 삭제
                $filename2 = $member['mb_'.$i];
                @unlink($mb_dir.'/'.iconv("UTF-8","EUC-KR",$filename2));
                $sql = " update {$g5['member_table']} set mb_$i ='$mb_$i' where mb_id='$mb_id'" ;
                sql_query($sql);
                
                // 파일업로드
                move_uploaded_file($_FILES['mb_'.$i]['tmp_name'], iconv("UTF-8","EUC-KR",$dest_path));
                chmod(iconv("UTF-8","EUC-KR",$dest_path), G5_FILE_PERMISSION);
                
                // 파일명 여분필드에 업데이트
                $filename = $_FILES['mb_'.$i]['name'];
                $sql = " update {$g5['member_table']} set mb_$i ='$filename' where mb_id='$mb_id'" ;
                sql_query($sql);

            } else {
                $msg .= '첨부이미지를 5M 이하로 업로드 해주십시오.';
            }

        } else {
            $msg .= $_FILES['mb_'.$i]['name'].'은(는) 이미지파일이 아닙니다.';
        }
    }
}

답변 1개 / 댓글 4개

채택된 답변
+20 포인트
2022-07-16 (토) 05:27:27

bbs/register_form_ update.php에서

mb_1-10 까지

update query 에서 빼 보세요

답변에 대한 댓글 4개

답변감사해요ㅠㅠ 그렇게 해서 뭘 확인해야하나요?ㅠ 제가 초보라
수정할때마다 원하지않는 파일까지 삭제가 돼요ㅠㅠ
==
삭제가 안 되는지 확인해 보시면 되죠.
답변 감사합니다.. 근데 그래도 삭제되네요ㅠㅠ 쿼리를 아예 제거해도 삭제돼용 ㅠㅠㅠㅠㅠㅠㅠㅠ
update, insert 두 곳이 있습니다.
update 쪽에서 빼야 합니다

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