채택완료

스킨에서 회원가입 페이지를 구성하고 있어요.

2022-10-19 (수) 00:08:18 1,626

/skin/board 스킨에서 회원가입, 수정을 할 수 있도록 만들고 있습니다. 

/adm/member_form.pnp 파일과 member_form_update.php 파일을 이용했고요.

그런데,, 아이디, 닉네임, 전번 등의 텍스트는 맴버테이블에 정상 입력이 되어지나..

회원아이콘, 회원이미지와 같이 이미지는 등록이 되지 않았습니다. 

그래서 확인해보니,,

member_form_update.php 소스 중 아래 if문이 동작하지 않아,

그런 것 같았습니다...

모든 파일은 /skin/board/ 에 있는데요..

혹시 이경우 어떤 부분을 들여다 봐야 할지.. 조언 구합니다..

  // 아이콘 업로드
    if (isset($_FILES['mb_img']) && is_uploaded_file($_FILES['mb_img']['tmp_name'])) {
        if (!preg_match($image_regex, $_FILES['mb_img']['name'])) {
            alert($_FILES['mb_img']['name'] . '은(는) 이미지 파일이 아닙니다.');
        }
        
        if (preg_match($image_regex, $_FILES['mb_img']['name'])) {
            @mkdir($mb_img_dir, G5_DIR_PERMISSION);
            @chmod($mb_img_dir, G5_DIR_PERMISSION);
            
            $dest_path = $mb_img_dir.'/'.$mb_icon_img;
            
            move_uploaded_file($_FILES['mb_img']['tmp_name'], $dest_path);
            chmod($dest_path, G5_FILE_PERMISSION);

            if (file_exists($dest_path)) {
                $size = @getimagesize($dest_path);
                if ($size[0] > $config['cf_member_img_width'] || $size[1] > $config['cf_member_img_height']) {
                    $thumb = null;
                    if($size[2] === 2 || $size[2] === 3) {
                        //jpg 또는 png 파일 적용
                        $thumb = thumbnail($mb_icon_img, $mb_img_dir, $mb_img_dir, $config['cf_member_img_width'], $config['cf_member_img_height'], true, true);
                        if($thumb) {
                            @unlink($dest_path);
                            rename($mb_img_dir.'/'.$thumb, $dest_path);
                        }
                    }
                    if( !$thumb ){
                        // 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
                        @unlink($dest_path);
                    }
                }
            }
        }
    }

|

답변 1개 / 댓글 4개

채택된 답변
+20 포인트
Copy
if (isset($_FILES['mb_img']) && is_uploaded_file($_FILES['mb_img']['tmp_name'])) {

에서 걸린게 맞다면 첨부파일이 넘어가지 않은것 아닐까요?

Copy
print_r($_FILES);

처럼 출력해보세요.

답변에 대한 댓글 4개

print_r($_FILES);
// 이렇게 해서 값이 넘어 오는지 보세요
if (isset($_FILES['mb_img']) ...
말씀하신것처럼 하니,, 아무런 값이 안넘어오네요...
adm/member_form_update.php 파일에서도 테스트 해봤는데,,
Array ( [mb_icon] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) [mb_img] => Array ( [name] => 화면 캡처 2022-10-04 171359.gif [type] => image/gif [tmp_name] => /tmp/phpN6QRQX [error] => 0 [size] => 201991 ) )

이렇게 나왔거든요.

근데 스킨에서 테스트 하니,,
Array() 이렇게 나와요..

그렇다면,, form 에
<input type="file" name="mb_img" id="mb_img" style="border:0px;"> 이부분인데..
여기서는 문제가 될것이 없어보이는데요. 혹시, 파일 위치가 스킨쪽이어서 추가 소스가 필요한가요?

가능하시면 조언 부탁드립니다.
form 에 아래 속성들 확인해보세요

[code]
<form method="post" enctype="multipart/form-data">
[/code]
아이고... 감사합니다. 이걸 빼먹고 있었네요 ㅠㅠ

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