[홈페이지만들기/쇼핑몰만들기] 그누보드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에서 회원 이미지는 디비에 저장하지 않고 회원별 폴더를 만들어서 저장하는 방식을 쓴다.
이미지가 있으면 보여주고, 없으면 안보여줌.
'Program > GNUBOARD' 카테고리의 다른 글
[홈페이지만들기/쇼핑몰만들기] 그누보드5(gnuboard5) mysql 관련 내장함수 (0) | 2017.01.21 |
---|---|
[홈페이지만들기/쇼핑몰만들기] 그누보드5(gnuboard5) - 메뉴설정시 게시판 정렬 동기화 시키기 (0) | 2017.01.20 |
[홈페이지만들기/쇼핑몰만들기] 그누보드5(gnuboard5) - 검색기능에 기간옵션, 정렬기능 추가하기 (0) | 2017.01.11 |
[홈페이지만들기/쇼핑몰만들기] 그누보드5 게시판 목록에서 회원레벨 출력하기 (0) | 2016.12.26 |
[홈페이지만들기/쇼핑몰만들기] 그누보드5 새페이지(php파일) 만들기 (1) | 2016.12.23 |
댓글