본문 바로가기
Program/GNUBOARD

[홈페이지만들기/쇼핑몰만들기] 그누보드5 회원이미지 등록기능 추가하기

by 너부리공작소 2016. 12. 22.
반응형

[홈페이지만들기/쇼핑몰만들기] 그누보드5 회원이미지 등록기능 추가하기

[홈페이지만들기/쇼핑몰만들기] 그누보드5 회원이미지 등록기능 추가하기

 

 

참고 링크 : http://sir.kr/bbs/board.php?bo_table=g5_tip&wr_id=2153

 

[홈페이지만들기/쇼핑몰만들기] 그누보드5버전에는 기본적으로 회원이미지 등록기능이 없다.

아이콘만 등록이 가능한데 여기에 회원이미지 기능을 추가했다.

 

수정할 파일

/bbs/register_form.php

/bbs/register_form_update.php

/어드민폴더/member_form.php

/어드민폴더/member_form_update.php

 

스킨폴더/register_form.skin.php

 

참고링크에서는 여분필드를 이용해서 이미지  가로,세로 사이즈와 용량을 지정해주었지만

굳이 할필요는 없어서 임의로 지정했다.

 

그누보드 회원정보수정 스킨파일(register_form.skin.php)을 열어

회원아이콘 바로 아래에 아래 소스를 넣어준다.

 

<tr>

<th scope="row"><label for="reg_mb_1">회원사진</label></th>

<td>

<span class="frm_info">

이미지 크기는 가로 55픽셀, 세로 55픽셀 이하로 해주세요.<br>

gif만 가능하며 용량 1000바이트 이하만 등록됩니다.

</span>

<input type="file" name="mb_1" id="reg_mb_1" class="frm_input">

 

<?php if ($w == 'u' && file_exists($mb_1_path)) {  ?>

<img src="<?php echo $mb_1_url ?>" alt="회원사진">

<input type="checkbox" name="del_mb_1" value="1" id="del_mb_1">

<label for="del_mb_1">삭제</label>

<?php }  ?>

</td>

</tr>

 

 

이후 lib/outlogin.lib.php 파일에 회원사진정보를 넣어두고, 사진이 필요한 곳에서 호출해서 사용하면 된다.

// 그누보드 회원사진 경로

$mb_1_path = G5_DATA_PATH.'/member_image/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';

$mb_1_url = G5_DATA_URL.'/member_image/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';

 

// 그누보드 회원사진이 없는 경우 노프로필 이미지를 나오게 설정한다.

if( !file_exists($mb_1_url)) {

$mb_1_url = '/img/no_profile.png';

$mb_1_msg = "회원정보에 사진을 올려주세요";

}

 

 

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

/bbs/register_form.php

// 그누보드 회원사진 경로

$mb_1_path = G5_DATA_PATH.'/member_image/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';

$mb_1_url = G5_DATA_URL.'/member_image/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';

 

 

 

 

/bbs/register_form_update.php

// 그누보드 회원사진 디렉토리

$mb1_dir = G5_DATA_PATH.'/member_image/'.substr($mb_id,0,2);

 

// 그누보드 회원사진 삭제

if (isset($_POST['del_mb_1'])) {

    @unlink($mb1_dir.'/'.$mb_id.'.gif');

}

 

// 그누보드 회원사진 업로드

$mb_1 = "";

if (is_uploaded_file($_FILES['mb_1']['tmp_name'])) {

    if (preg_match("/(\.gif)$/i", $_FILES['mb_1']['name'])) {

        // 아이콘 용량이 설정값보다 이하만 업로드 가능

        if ($_FILES['mb_1']['size'] <= 1000) {

            @mkdir($mb1_dir, G5_DIR_PERMISSION);

            @chmod($mb1_dir, G5_DIR_PERMISSION);

            $dest_path = $mb1_dir.'/'.$mb_id.'.gif';

            move_uploaded_file($_FILES['mb_1']['tmp_name'], $dest_path);

            chmod($dest_path, G5_FILE_PERMISSION);

            if (file_exists($dest_path)) {

                //=================================================================\

                // 090714

                // gif 파일에 악성코드를 심어 업로드 하는 경우를 방지

                // 에러메세지는 출력하지 않는다.

                //-----------------------------------------------------------------

                $size = getimagesize($dest_path);

                if ($size[2] != 1) // gif 파일이 아니면 올라간 이미지를 삭제한다.

                    @unlink($dest_path);

                else

                // 사진의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 사진 삭제

                if ($size[0] > 55 || $size[1] >  55)

                    @unlink($dest_path);

                //=================================================================\

            }

        } else {

            $msg .= '회원사진을 1000바이트 이하로 업로드 해주십시오.';

        }

    } else {

        $msg .= $_FILES['mb_1']['name'].'은(는) gif 파일이 아닙니다.';

    }

}

 

------------------------------------------------------------------------------------------------------------------------------------------------

 

** 참고로 [홈페이지만들기/쇼핑몰만들기] 그누보드5에서 회원 이미지는 디비에 저장하지 않고 회원별 폴더를 만들어서 저장하는 방식을 쓴다.

이미지가 있으면 보여주고, 없으면 안보여줌.

 

반응형

댓글