그누보드 [G5] 회원가입 아이콘/사진 기능 적용하기
페이지 정보
첨부파일
-
img.zip (5.1K)
41회 다운로드 | DATE : 2017-03-02 20:48:37
본문
-. 순정그누보드와 회원 아이콘저장하는 방식이 다릅니다.
ex) 회원아이디 happyjung 일때
data/member/ha/happyjung 가 아닌 data/member/happyjung 로 저장합니다.
-. mb_1 을 사용하지 않습니다.
-. 이미지 확장자 gif, jpg, png 가능합니다.
-. 환경설정의 서명 사용을 체크해야 사용 가능합니다.
-. 게시판 설정에서 서명 사용을 체크해서 게시글에서 서명을 볼 수 있습니다.
1. 그누보드5 > 환경설정 > 기본환경설정 > 여분필드 기본 설정
여분필드1 제목 : 회원이미지 가로
여분필드1 값 : 58
여분필드2 제목 : 회원이미지 세로
여분필드2 값 : 58
여분필드3 제목 : 회원이미지 용량
여분필드3 값 : 300000
2. 그누보드5 / data / member_image 폴더 생성 및 퍼미션은 707 로 변경
3. 그누보드5 / skin / member / 폴더 / register_form.skin.php
<?php if ($config['cf_use_member_icon'] && $member['mb_level'] >= $config['cf_icon_level']) { ?>
<tr>
<th scope="row"><label for="reg_mb_icon">회원아이콘</label></th>
<td>
<span class="frm_info">
이미지 크기는 가로 <?php echo $config['cf_member_icon_width'] ?>픽셀, 세로 <?php echo $config['cf_member_icon_height'] ?>픽셀 이하로 해주세요.<br>
gif만 가능하며 용량 <?php echo number_format($config['cf_member_icon_size']) ?>바이트 이하만 등록됩니다.
</span>
<input type="file" name="mb_icon" id="reg_mb_icon" class="frm_input">
<?php if ($w == 'u' && file_exists($mb_icon_path)) { ?>
<img src="<?php echo $mb_icon_url ?>" alt="회원아이콘">
<input type="checkbox" name="del_mb_icon" value="1" id="del_mb_icon">
<label for="del_mb_icon">삭제</label>
<?php } ?>
</td>
</tr>
<?php } ?>
내용을 다음과 같이 변경
<?php if ($config['cf_use_member_icon'] && $member['mb_level'] >= $config['cf_icon_level']) { ?>
<tr>
<th scope="row"><label for="reg_mb_icon">회원아이콘</label></th>
<td>
<span class="frm_info">
이미지 크기는 가로 <?php echo $config['cf_member_icon_width'] ?>픽셀, 세로 <?php echo $config['cf_member_icon_height'] ?>픽셀 이하로 해주세요.<br>
gif.jpg.png 가능하며 용량 <?php echo number_format($config['cf_member_icon_size']) ?>바이트 이하만 등록됩니다.
</span>
<input type="file" name="mb_icon" id="reg_mb_icon" class="frm_input">
<?php if ($w == 'u' && file_exists($mb_icon_path)) { ?>
<img src="<?php echo $mb_icon_url ?>" alt="회원아이콘">
<input type="checkbox" name="del_mb_icon" value="1" id="del_mb_icon">
<label for="del_mb_icon">삭제</label>
<?php } ?>
</td>
</tr>
<tr>
<th scope="row"><label for="reg_photo">회원이미지</label></th>
<td>
<span class="frm_info">
이미지 크기는 가로 <?php echo $config['cf_1'] ?>픽셀, 세로 <?php echo $config['cf_2'] ?>픽셀 이하로 해주세요.<br>
gif.jpg.png 가능하며 용량 <?php echo number_format($config['cf_3']) ?>바이트 이하만 등록됩니다.
</span>
<input type="file" name="reg_photo" id="reg_photo" class="frm_input">
<?php if ($w == 'u' && file_exists($photo_file)) { ?>
<img src="<?php echo G5_DATA_URL.'/member_image/'.$member['mb_id']."?v=".G5_SERVER_TIME;?>" alt="회원이미지">
<input type="checkbox" name="del_photo" value="1" id="del_photo">
<label for="del_photo">삭제</label>
<?php } ?>
</td>
</tr>
4. 그누보드5 / bbs / register_form.php
// 회원아이콘 경로
$mb_icon_path = G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';
$mb_icon_url = G5_DATA_URL.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';
내용을 다음과 같이 변경
// 회원아이콘 경로
$mb_icon_path = G5_DATA_PATH.'/member/'.$member['mb_id'];
$mb_icon_url = G5_DATA_URL.'/member/'.$member['mb_id'];
5. 그누보드5 / bbs / register_form_update.php
// 회원 아이콘
$mb_dir = G5_DATA_PATH.'/member/'.substr($mb_id,0,2);
....
의 내용을 아래와 같이 변경
// 회원 아이콘
$mb_dir = G5_DATA_PATH.'/member';
// 아이콘 삭제
if (isset($_POST['del_mb_icon'])) {
@unlink($mb_dir.'/'.$mb_id);
}
$msg = "";
// 아이콘 업로드
$mb_icon = '';
if (isset($_FILES['mb_icon']) && is_uploaded_file($_FILES['mb_icon']['tmp_name'])) {
if (preg_match("/\.(gif|jpg|png)$/i", $_FILES['mb_icon']['name'])) {
// 아이콘 용량이 설정값보다 이하만 업로드 가능
if ($_FILES['mb_icon']['size'] <= $config['cf_member_icon_size']) {
@mkdir($mb_dir, G5_DIR_PERMISSION);
@chmod($mb_dir, G5_DIR_PERMISSION);
$dest_path = $mb_dir.'/'.$mb_id;
move_uploaded_file($_FILES['mb_icon']['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 || $size[2]==2 || $size[2]==3) {
} else { // 이미지 파일이 아니면 올라간 파일을 삭제한다.
@unlink($dest_path);
}
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
if ($size[0] > $config['cf_member_icon_width'] || $size[1] > $config['cf_member_icon_height']) {
//@unlink($dest_path);
}
//=================================================================\
}
} else {
$msg .= '회원아이콘을 '.number_format($config['cf_member_icon_size']).'바이트 이하로 업로드 해주십시오.';
}
} else {
$msg .= $_FILES['mb_icon']['name'].'은(는) 이미지 파일이 아닙니다.';
}
}
// 회원이미지
$photo_dir = G5_DATA_PATH."/member_image";
// 회원이미지 삭제
if (isset($_POST['del_photo'])) {
@unlink($photo_dir.'/'.$mb_id);
}
// 회원이미지 업로드
$reg_photo = "";
if (isset($_FILES['reg_photo']) && is_uploaded_file($_FILES['reg_photo']['tmp_name'])) {
if (preg_match("/\.(gif|jpg|jpeg|png)$/i", $_FILES['reg_photo']['name'])) {
// 아이콘 용량이 설정값보다 이하만 업로드 가능
if ($_FILES['reg_photo']['size'] <= $config['cf_3']) {
$photo_dest_path = $photo_dir.'/'.$mb_id;
move_uploaded_file($_FILES['reg_photo']['tmp_name'], $photo_dest_path);
chmod($photo_dest_path, G5_FILE_PERMISSION);
if (file_exists($photo_dest_path)) {
//=================================================================\
// 090714
// gif 파일에 악성코드를 심어 업로드 하는 경우를 방지
// 에러메세지는 출력하지 않는다.
//-----------------------------------------------------------------
$photo_size = getimagesize($photo_dest_path);
if ($photo_size[2]==1 || $photo_size[2]==2 || $photo_size[2]==3) {
} else { // 이미지 파일이 아니면 올라간 파일을 삭제한다.
@unlink($photo_dest_path);
}
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
if ($photo_size[0] > $config['cf_1'] || $photo_size[1] > $config['cf_2']) {
//@unlink($photo_dest_path);
}
//=================================================================\
}
} else {
$msg .= '회원이미지를 '.number_format($config['cf_3']).'바이트 이하로 업로드 해주십시오.';
}
} else {
$msg .= $_FILES['reg_photo']['name'].'은(는) 이미지 파일이 아닙니다.';
}
}
6-1. 그누보드5 / adm / member_form.php
<tr>
<th scope="row"><label for="mb_icon">회원아이콘</label></th>
<td colspan="3">
<?php echo help('이미지 크기는 <strong>넓이 '.$config['cf_member_icon_width'].'픽셀 높이 '.$config['cf_member_icon_height'].'픽셀</strong>로 해주세요.') ?>
<input type="file" name="mb_icon" id="mb_icon">
<?php
$mb_dir = substr($mb['mb_id'],0,2);
$icon_file = G5_DATA_PATH.'/member/'.$mb_dir.'/'.$mb['mb_id'].'.gif';
if (file_exists($icon_file)) {
$icon_url = G5_DATA_URL.'/member/'.$mb_dir.'/'.$mb['mb_id'].'.gif';
echo '<img src="'.$icon_url.'" alt="">';
echo '<input type="checkbox" id="del_mb_icon" name="del_mb_icon" value="1">삭제';
}
?>
</td>
</tr>
아래와 같이 변경
<tr>
<th scope="row"><label for="mb_icon">회원아이콘</label></th>
<td colspan="3">
<?php echo help('이미지 크기는 <strong>넓이 '.$config['cf_member_icon_width'].'픽셀 높이 '.$config['cf_member_icon_height'].'픽셀</strong>로 해주세요.') ?>
<input type="file" name="mb_icon" id="mb_icon">
<?php
$icon_file = G5_DATA_PATH.'/member/'.$mb['mb_id'];
if (file_exists($icon_file)) {
$icon_url = G5_DATA_URL.'/member/'.$mb['mb_id'];
echo '<img src="'.$icon_url.'?v='.G5_SERVER_TIME.'" alt="">';
echo '<input type="checkbox" id="del_mb_icon" name="del_mb_icon" value="1">삭제';
}
?>
</td>
</tr>
<tr>
<th scope="row"><label for="reg_photo">회원이미지</label></th>
<td colspan="3">
<?php echo help('이미지 크기는 <strong>넓이 '.$config['cf_1'].'픽셀 높이 '.$config['cf_2'].'픽셀</strong>로 해주세요.') ?>
<input type="file" name="reg_photo" id="reg_photo">
<?php
$photo_file = G5_DATA_PATH.'/member_image/'.$mb['mb_id'];
if (file_exists($photo_file)) {
$photo_url = G5_DATA_URL.'/member_image/'.$mb['mb_id'];
echo '<img src="'.$photo_url.'" alt=""> ';
echo '<input type="checkbox" id="del_photo" name="del_photo" value="1">삭제';
}
?>
</td>
</tr>
6-2. 그누보드5 / adm / member_form.php
if (!f.mb_icon.value.match(/\.gif$/i) && f.mb_icon.value) {
alert('아이콘은 gif 파일만 가능합니다.');
return false;
}
를 아래와 같이 변경
if (!f.mb_icon.value.match(/\.gif$/i) && f.mb_icon.value) {
//alert('아이콘은 gif 파일만 가능합니다.');
//return false;
}
7. 그누보드5 / adm / member_form_update.php
// 회원 아이콘 삭제
if ($del_mb_icon)
@unlink(G5_DATA_PATH.'/member/'.$mb_dir.'/'.$mb_id.'.gif');
// 아이콘 업로드
if (is_uploaded_file($_FILES['mb_icon']['tmp_name'])) {
if (!preg_match("/(\.gif)$/i", $_FILES['mb_icon']['name'])) {
alert($_FILES['mb_icon']['name'] . '은(는) gif 파일이 아닙니다.');
}
if (preg_match("/(\.gif)$/i", $_FILES['mb_icon']['name'])) {
@mkdir(G5_DATA_PATH.'/member/'.$mb_dir, G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH.'/member/'.$mb_dir, G5_DIR_PERMISSION);
$dest_path = G5_DATA_PATH.'/member/'.$mb_dir.'/'.$mb_id.'.gif';
move_uploaded_file($_FILES['mb_icon']['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_icon_width'] || $size[1] > $config['cf_member_icon_height']) {
@unlink($dest_path);
}
}
}
}
를 아래와 같이 변경
// 회원 아이콘 삭제
if ($del_mb_icon)
@unlink(G5_DATA_PATH.'/member/'.$mb_id);
// 아이콘 업로드
if (is_uploaded_file($_FILES['mb_icon']['tmp_name'])) {
if (!preg_match("/\.(gif|jpg|jpeg|png)$/i", $_FILES['mb_icon']['name'])) {
alert($_FILES['mb_icon']['name'] . '은(는) gif 파일이 아닙니다.');
}
if (preg_match("/\.(gif|jpg|jpeg|png)$/i", $_FILES['mb_icon']['name'])) {
$dest_path = G5_DATA_PATH.'/member/'.$mb_id;
move_uploaded_file($_FILES['mb_icon']['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_icon_width'] || $size[1] > $config['cf_member_icon_height']) {
@unlink($dest_path);
}
}
}
}
// 회원 이미지 삭제
if ($del_photo)
@unlink(G5_DATA_PATH.'/member_images/'.$mb_id);
// 회원 이미지 업로드
if (is_uploaded_file($_FILES['reg_photo']['tmp_name'])) {
if (!preg_match("/\.(gif|jpg|png)$/i", $_FILES['reg_photo']['name'])) {
alert($_FILES['reg_photo']['name'] . '은(는) gif 파일이 아닙니다.');
}
if (preg_match("/\.(gif|jpg|png)$/i", $_FILES['reg_photo']['name'])) {
$photo_dest_path = G5_DATA_PATH.'/member_image/'.$mb_id;
move_uploaded_file($_FILES['reg_photo']['tmp_name'], $photo_dest_path);
chmod($photo_dest_path, G5_FILE_PERMISSION);
if (file_exists($photo_dest_path)) {
$photo_size = getimagesize($photo_dest_path);
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
if ($photo_size[0] > $config['cf_1'] || $photo_size[1] > $config['cf_2']) {
//@unlink($photo_dest_path);
}
}
}
}
8-1. 그누보드5 / skin / board / 스킨 / view.skin.php
작성자 <strong><?php echo $view['name'] ?><?php if ($is_ip_view) { echo " ($ip)"; } ?></strong>
를 다음과 같이 변경
<?php
if ($is_signature) {
$mb_icon = G5_DATA_PATH.'/member/'.$view['mb_id'];
if (file_exists($mb_icon)) {
$mb_icon = G5_DATA_URL.'/member/'.$view['mb_id'];
} else {
$mb_icon = $board_skin_url.'/img/member_no_icon.png';
}
echo '<img src="'.$mb_icon.'" alt="">';
} else { echo "작성자 "; }
?> <strong><?php echo $view['name'] ?><?php if ($is_ip_view) { echo " ($ip)"; } ?></strong>
8-2. 그누보드5 / skin / board / 스킨 / view.skin.php
<?php if ($is_signature) { ?><p><?php echo $signature ?></p><?php } ?>
를 아래와 같이 변경
<?php if ($is_signature) { ?>
<div style="width:100%;height:78px;margin-bottom:10px;border-bottom:1px solid #ddd; border-top:1px solid #ddd;color:#797979;">
<div style="float:left;width:58px;height:58px;padding:10px 0">
<?php
// 회원 사진
$mb_photo = G5_DATA_PATH.'/member_image/'.$view['mb_id'];
if (file_exists($mb_photo)) {
$mb_photo = G5_DATA_URL.'/member_image/'.$view['mb_id'];
echo '<img src="'.$mb_photo.'" alt="">';
} else {
$mb_photo = $board_skin_url.'/img/member_no_photo.gif';
echo '<img src="'.$mb_photo.'" alt="">';
}
?>
</div>
<div style="float:left;height:58px;padding:10px;text-align:top">
<?php
// 회원 아이콘
$mb_icon = G5_DATA_PATH.'/member/'.$view['mb_id'];
if (file_exists($mb_icon)) {
$mb_icon = G5_DATA_URL.'/member/'.$view['mb_id'];
} else {
$mb_icon = $board_skin_url.'/img/member_no_icon.png';
}
echo '<img src="'.$mb_icon.'" alt="">';
?>
</div>
<div style="padding:10px 0;overflow:auto;overflow-y;height:48px;">
<p><?php echo $signature ?></p>
</div>
</div>
<?php } ?>
9-1. 그누보드5 / skin / board / 스킨 / view_comment.skin.php
<h1><?php echo get_text($list[$i]['wr_name']); ?>님의 댓글</h1>
<?php echo $list[$i]['name'] ?>
를 다음과 같이 변경
<h1><?php echo get_text($list[$i]['wr_name']); ?>님의 댓글</h1>
<?php
if ($is_signature) {
$mb_icon = G5_DATA_PATH.'/member/'.$view['mb_id'];
if (file_exists($mb_icon)) {
$mb_icon = G5_DATA_URL.'/member/'.$view['mb_id'];
} else {
$mb_icon = $board_skin_url.'/img/member_no_icon.png';
}
echo '<img src="'.$mb_icon.'" alt="">';
}
?>
<?php echo $list[$i]['name'] ?>
9-2. 그누보드5 / skin / board / 스킨 / view_comment.skin.php
<p>
<?php if (strstr($list[$i]['wr_option'], "secret")) { ?><img src="<?php echo $board_skin_url; ?>/img/icon_secret.gif" alt="비밀글"><?php } ?>
<?php echo $comment ?>
</p>
를 다음과 같이 변경
<?php if ($is_signature) { ?>
<div style="height:auto;min-height:58px;">
<div style="float:left;padding-right:10px;text-align:top">
<?php
$mb_photo = G5_DATA_PATH.'/member_image/'.$list[$i]['mb_id'];
if (file_exists($mb_photo)) { // 등록한 사진이 있는 경우
$mb_photo = G5_DATA_URL.'/member_image/'.$list[$i]['mb_id'];
} else { // 등록한 사진이 없거나 비회원인 경우
$mb_photo = $board_skin_url.'/img/member_no_photo.gif';
}
echo '<img src="'.$mb_photo.'" alt="">';
?>
</div>
<div>
<?php if (strstr($list[$i]['wr_option'], "secret")) { ?><img src="<?php echo $board_skin_url; ?>/img/icon_secret.gif" alt="비밀글"><?php } ?>
<?php echo $comment ?>
</div>
</div>
<?php } else { ?>
<p>
<?php if (strstr($list[$i]['wr_option'], "secret")) { ?><img src="<?php echo $board_skin_url; ?>/img/icon_secret.gif" alt="비밀글"><?php } ?>
<?php echo $comment ?>
</p>
<?php } ?>
10-1. 그누보드5 / mobile / skin / board / 스킨 / view.skin.php
작성자 <strong><?php echo $view['name'] ?><?php if ($is_ip_view) { echo " ($ip)"; } ?></strong>
를 다음과 같이 변경
<?php
if ($is_signature) {
$mb_icon = G5_DATA_PATH.'/member/'.$view['mb_id'];
if (file_exists($mb_icon)) {
$mb_icon = G5_DATA_URL.'/member/'.$view['mb_id'];
} else {
$mb_icon = $board_skin_url.'/img/member_no_icon.png';
}
echo '<img src="'.$mb_icon.'" alt="">';
} else { echo "작성자 "; }
?> <strong><?php echo $view['name'] ?><?php if ($is_ip_view) { echo " ($ip)"; } ?></strong>
10-2. 그누보드5 / mobile / skin / board / 스킨 / view.skin.php
<?php if ($is_signature) { ?><p><?php echo $signature ?></p><?php } ?>
를 아래와 같이 변경
<?php if ($is_signature) { ?>
<div style="width:100%;height:78px;margin-bottom:10px;border-bottom:1px solid #ddd; border-top:1px solid #ddd;color:#797979;">
<div style="float:left;width:58px;height:58px;padding:10px 0">
<?php
// 회원 사진
$mb_photo = G5_DATA_PATH.'/member_image/'.$view['mb_id'];
if (file_exists($mb_photo)) {
$mb_photo = G5_DATA_URL.'/member_image/'.$view['mb_id'];
echo '<img src="'.$mb_photo.'" alt="">';
} else {
$mb_photo = $board_skin_url.'/img/member_no_photo.gif';
echo '<img src="'.$mb_photo.'" alt="">';
}
?>
</div>
<div style="float:left;height:58px;padding:10px;text-align:top">
<?php
// 회원 아이콘
$mb_icon = G5_DATA_PATH.'/member/'.$view['mb_id'];
if (file_exists($mb_icon)) {
$mb_icon = G5_DATA_URL.'/member/'.$view['mb_id'];
} else {
$mb_icon = $board_skin_url.'/img/member_no_icon.png';
}
echo '<img src="'.$mb_icon.'" alt="">';
?>
</div>
<div style="padding:10px 0;overflow:auto;overflow-y;height:48px;">
<p><?php echo $signature ?></p>
</div>
</div>
<?php } ?>
11-1. 그누보드5 / mobile / skin / board / 스킨 / view_comment.skin.php
<h1><?php echo get_text($list[$i]['wr_name']); ?>님의 댓글</h1>
<?php echo $list[$i]['name'] ?>
를 다음과 같이 변경
<h1><?php echo get_text($list[$i]['wr_name']); ?>님의 댓글</h1>
<?php
if ($is_signature) {
$mb_icon = G5_DATA_PATH.'/member/'.$view['mb_id'];
if (file_exists($mb_icon)) {
$mb_icon = G5_DATA_URL.'/member/'.$view['mb_id'];
} else {
$mb_icon = $board_skin_url.'/img/member_no_icon.png';
}
echo '<img src="'.$mb_icon.'" alt="">';
}
?>
<?php echo $list[$i]['name'] ?>
11-2. 그누보드5 / mobile / skin / board / 스킨 / view_comment.skin.php
<p>
<?php if (strstr($list[$i]['wr_option'], "secret")) { ?><span class="label label-warning" style="position:relative; top:-2px; margin-right: 5px;"><i class="fa fa-lock" aria-hidden="true" title="비밀글"></i></span><?php } ?>
<?=$comment ?>
</p>
를 다음과 같이 변경
<?php if ($is_signature) { ?>
<div style="height:auto;min-height:58px;">
<div style="float:left;padding-right:10px;text-align:top">
<?php
//echo $config[cf_1] + "10";
// 회원 사진
$mb_photo = G5_DATA_PATH.'/member_image/'.$list[$i]['mb_id'];
if (file_exists($mb_photo)) { // 등록한 사진이 있는 경우
$mb_photo = G5_DATA_URL.'/member_image/'.$list[$i]['mb_id'];
echo '<img src="'.$mb_photo.'" alt="">';
} else { // 등록한 사진이 없거나 비회원인 경우
$mb_photo = $board_skin_url.'/img/member_no_photo.gif';
echo '<img src="'.$mb_photo.'" alt="">';
}
?>
</div>
<div>
<?php if (strstr($list[$i]['wr_option'], "secret")) { ?><img src="<?php echo $board_skin_url; ?>/img/icon_secret.gif" alt="비밀글"><?php } ?>
<?php echo $comment ?>
</div>
</div>
<?php } else { ?>
<p>
<?php if (strstr($list[$i]['wr_option'], "secret")) { ?><span class="label label-warning" style="position:relative; top:-2px; margin-right: 5px;"><i class="fa fa-lock" aria-hidden="true" title="비밀글"></i></span><?php } ?>
<?=$comment ?>
</p>
<?php } ?>
관련자료
https://sir.kr/bbs/board.php?bo_table=g5_tip&wr_id=2162
ex) 회원아이디 happyjung 일때
data/member/ha/happyjung 가 아닌 data/member/happyjung 로 저장합니다.
-. mb_1 을 사용하지 않습니다.
-. 이미지 확장자 gif, jpg, png 가능합니다.
-. 환경설정의 서명 사용을 체크해야 사용 가능합니다.
-. 게시판 설정에서 서명 사용을 체크해서 게시글에서 서명을 볼 수 있습니다.
1. 그누보드5 > 환경설정 > 기본환경설정 > 여분필드 기본 설정
여분필드1 제목 : 회원이미지 가로
여분필드1 값 : 58
여분필드2 제목 : 회원이미지 세로
여분필드2 값 : 58
여분필드3 제목 : 회원이미지 용량
여분필드3 값 : 300000
2. 그누보드5 / data / member_image 폴더 생성 및 퍼미션은 707 로 변경
3. 그누보드5 / skin / member / 폴더 / register_form.skin.php
<?php if ($config['cf_use_member_icon'] && $member['mb_level'] >= $config['cf_icon_level']) { ?>
<tr>
<th scope="row"><label for="reg_mb_icon">회원아이콘</label></th>
<td>
<span class="frm_info">
이미지 크기는 가로 <?php echo $config['cf_member_icon_width'] ?>픽셀, 세로 <?php echo $config['cf_member_icon_height'] ?>픽셀 이하로 해주세요.<br>
gif만 가능하며 용량 <?php echo number_format($config['cf_member_icon_size']) ?>바이트 이하만 등록됩니다.
</span>
<input type="file" name="mb_icon" id="reg_mb_icon" class="frm_input">
<?php if ($w == 'u' && file_exists($mb_icon_path)) { ?>
<img src="<?php echo $mb_icon_url ?>" alt="회원아이콘">
<input type="checkbox" name="del_mb_icon" value="1" id="del_mb_icon">
<label for="del_mb_icon">삭제</label>
<?php } ?>
</td>
</tr>
<?php } ?>
내용을 다음과 같이 변경
<?php if ($config['cf_use_member_icon'] && $member['mb_level'] >= $config['cf_icon_level']) { ?>
<tr>
<th scope="row"><label for="reg_mb_icon">회원아이콘</label></th>
<td>
<span class="frm_info">
이미지 크기는 가로 <?php echo $config['cf_member_icon_width'] ?>픽셀, 세로 <?php echo $config['cf_member_icon_height'] ?>픽셀 이하로 해주세요.<br>
gif.jpg.png 가능하며 용량 <?php echo number_format($config['cf_member_icon_size']) ?>바이트 이하만 등록됩니다.
</span>
<input type="file" name="mb_icon" id="reg_mb_icon" class="frm_input">
<?php if ($w == 'u' && file_exists($mb_icon_path)) { ?>
<img src="<?php echo $mb_icon_url ?>" alt="회원아이콘">
<input type="checkbox" name="del_mb_icon" value="1" id="del_mb_icon">
<label for="del_mb_icon">삭제</label>
<?php } ?>
</td>
</tr>
<tr>
<th scope="row"><label for="reg_photo">회원이미지</label></th>
<td>
<span class="frm_info">
이미지 크기는 가로 <?php echo $config['cf_1'] ?>픽셀, 세로 <?php echo $config['cf_2'] ?>픽셀 이하로 해주세요.<br>
gif.jpg.png 가능하며 용량 <?php echo number_format($config['cf_3']) ?>바이트 이하만 등록됩니다.
</span>
<input type="file" name="reg_photo" id="reg_photo" class="frm_input">
<?php if ($w == 'u' && file_exists($photo_file)) { ?>
<img src="<?php echo G5_DATA_URL.'/member_image/'.$member['mb_id']."?v=".G5_SERVER_TIME;?>" alt="회원이미지">
<input type="checkbox" name="del_photo" value="1" id="del_photo">
<label for="del_photo">삭제</label>
<?php } ?>
</td>
</tr>
4. 그누보드5 / bbs / register_form.php
// 회원아이콘 경로
$mb_icon_path = G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';
$mb_icon_url = G5_DATA_URL.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';
내용을 다음과 같이 변경
// 회원아이콘 경로
$mb_icon_path = G5_DATA_PATH.'/member/'.$member['mb_id'];
$mb_icon_url = G5_DATA_URL.'/member/'.$member['mb_id'];
5. 그누보드5 / bbs / register_form_update.php
// 회원 아이콘
$mb_dir = G5_DATA_PATH.'/member/'.substr($mb_id,0,2);
....
의 내용을 아래와 같이 변경
// 회원 아이콘
$mb_dir = G5_DATA_PATH.'/member';
// 아이콘 삭제
if (isset($_POST['del_mb_icon'])) {
@unlink($mb_dir.'/'.$mb_id);
}
$msg = "";
// 아이콘 업로드
$mb_icon = '';
if (isset($_FILES['mb_icon']) && is_uploaded_file($_FILES['mb_icon']['tmp_name'])) {
if (preg_match("/\.(gif|jpg|png)$/i", $_FILES['mb_icon']['name'])) {
// 아이콘 용량이 설정값보다 이하만 업로드 가능
if ($_FILES['mb_icon']['size'] <= $config['cf_member_icon_size']) {
@mkdir($mb_dir, G5_DIR_PERMISSION);
@chmod($mb_dir, G5_DIR_PERMISSION);
$dest_path = $mb_dir.'/'.$mb_id;
move_uploaded_file($_FILES['mb_icon']['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 || $size[2]==2 || $size[2]==3) {
} else { // 이미지 파일이 아니면 올라간 파일을 삭제한다.
@unlink($dest_path);
}
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
if ($size[0] > $config['cf_member_icon_width'] || $size[1] > $config['cf_member_icon_height']) {
//@unlink($dest_path);
}
//=================================================================\
}
} else {
$msg .= '회원아이콘을 '.number_format($config['cf_member_icon_size']).'바이트 이하로 업로드 해주십시오.';
}
} else {
$msg .= $_FILES['mb_icon']['name'].'은(는) 이미지 파일이 아닙니다.';
}
}
// 회원이미지
$photo_dir = G5_DATA_PATH."/member_image";
// 회원이미지 삭제
if (isset($_POST['del_photo'])) {
@unlink($photo_dir.'/'.$mb_id);
}
// 회원이미지 업로드
$reg_photo = "";
if (isset($_FILES['reg_photo']) && is_uploaded_file($_FILES['reg_photo']['tmp_name'])) {
if (preg_match("/\.(gif|jpg|jpeg|png)$/i", $_FILES['reg_photo']['name'])) {
// 아이콘 용량이 설정값보다 이하만 업로드 가능
if ($_FILES['reg_photo']['size'] <= $config['cf_3']) {
$photo_dest_path = $photo_dir.'/'.$mb_id;
move_uploaded_file($_FILES['reg_photo']['tmp_name'], $photo_dest_path);
chmod($photo_dest_path, G5_FILE_PERMISSION);
if (file_exists($photo_dest_path)) {
//=================================================================\
// 090714
// gif 파일에 악성코드를 심어 업로드 하는 경우를 방지
// 에러메세지는 출력하지 않는다.
//-----------------------------------------------------------------
$photo_size = getimagesize($photo_dest_path);
if ($photo_size[2]==1 || $photo_size[2]==2 || $photo_size[2]==3) {
} else { // 이미지 파일이 아니면 올라간 파일을 삭제한다.
@unlink($photo_dest_path);
}
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
if ($photo_size[0] > $config['cf_1'] || $photo_size[1] > $config['cf_2']) {
//@unlink($photo_dest_path);
}
//=================================================================\
}
} else {
$msg .= '회원이미지를 '.number_format($config['cf_3']).'바이트 이하로 업로드 해주십시오.';
}
} else {
$msg .= $_FILES['reg_photo']['name'].'은(는) 이미지 파일이 아닙니다.';
}
}
6-1. 그누보드5 / adm / member_form.php
<tr>
<th scope="row"><label for="mb_icon">회원아이콘</label></th>
<td colspan="3">
<?php echo help('이미지 크기는 <strong>넓이 '.$config['cf_member_icon_width'].'픽셀 높이 '.$config['cf_member_icon_height'].'픽셀</strong>로 해주세요.') ?>
<input type="file" name="mb_icon" id="mb_icon">
<?php
$mb_dir = substr($mb['mb_id'],0,2);
$icon_file = G5_DATA_PATH.'/member/'.$mb_dir.'/'.$mb['mb_id'].'.gif';
if (file_exists($icon_file)) {
$icon_url = G5_DATA_URL.'/member/'.$mb_dir.'/'.$mb['mb_id'].'.gif';
echo '<img src="'.$icon_url.'" alt="">';
echo '<input type="checkbox" id="del_mb_icon" name="del_mb_icon" value="1">삭제';
}
?>
</td>
</tr>
아래와 같이 변경
<tr>
<th scope="row"><label for="mb_icon">회원아이콘</label></th>
<td colspan="3">
<?php echo help('이미지 크기는 <strong>넓이 '.$config['cf_member_icon_width'].'픽셀 높이 '.$config['cf_member_icon_height'].'픽셀</strong>로 해주세요.') ?>
<input type="file" name="mb_icon" id="mb_icon">
<?php
$icon_file = G5_DATA_PATH.'/member/'.$mb['mb_id'];
if (file_exists($icon_file)) {
$icon_url = G5_DATA_URL.'/member/'.$mb['mb_id'];
echo '<img src="'.$icon_url.'?v='.G5_SERVER_TIME.'" alt="">';
echo '<input type="checkbox" id="del_mb_icon" name="del_mb_icon" value="1">삭제';
}
?>
</td>
</tr>
<tr>
<th scope="row"><label for="reg_photo">회원이미지</label></th>
<td colspan="3">
<?php echo help('이미지 크기는 <strong>넓이 '.$config['cf_1'].'픽셀 높이 '.$config['cf_2'].'픽셀</strong>로 해주세요.') ?>
<input type="file" name="reg_photo" id="reg_photo">
<?php
$photo_file = G5_DATA_PATH.'/member_image/'.$mb['mb_id'];
if (file_exists($photo_file)) {
$photo_url = G5_DATA_URL.'/member_image/'.$mb['mb_id'];
echo '<img src="'.$photo_url.'" alt=""> ';
echo '<input type="checkbox" id="del_photo" name="del_photo" value="1">삭제';
}
?>
</td>
</tr>
6-2. 그누보드5 / adm / member_form.php
if (!f.mb_icon.value.match(/\.gif$/i) && f.mb_icon.value) {
alert('아이콘은 gif 파일만 가능합니다.');
return false;
}
를 아래와 같이 변경
if (!f.mb_icon.value.match(/\.gif$/i) && f.mb_icon.value) {
//alert('아이콘은 gif 파일만 가능합니다.');
//return false;
}
7. 그누보드5 / adm / member_form_update.php
// 회원 아이콘 삭제
if ($del_mb_icon)
@unlink(G5_DATA_PATH.'/member/'.$mb_dir.'/'.$mb_id.'.gif');
// 아이콘 업로드
if (is_uploaded_file($_FILES['mb_icon']['tmp_name'])) {
if (!preg_match("/(\.gif)$/i", $_FILES['mb_icon']['name'])) {
alert($_FILES['mb_icon']['name'] . '은(는) gif 파일이 아닙니다.');
}
if (preg_match("/(\.gif)$/i", $_FILES['mb_icon']['name'])) {
@mkdir(G5_DATA_PATH.'/member/'.$mb_dir, G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH.'/member/'.$mb_dir, G5_DIR_PERMISSION);
$dest_path = G5_DATA_PATH.'/member/'.$mb_dir.'/'.$mb_id.'.gif';
move_uploaded_file($_FILES['mb_icon']['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_icon_width'] || $size[1] > $config['cf_member_icon_height']) {
@unlink($dest_path);
}
}
}
}
를 아래와 같이 변경
// 회원 아이콘 삭제
if ($del_mb_icon)
@unlink(G5_DATA_PATH.'/member/'.$mb_id);
// 아이콘 업로드
if (is_uploaded_file($_FILES['mb_icon']['tmp_name'])) {
if (!preg_match("/\.(gif|jpg|jpeg|png)$/i", $_FILES['mb_icon']['name'])) {
alert($_FILES['mb_icon']['name'] . '은(는) gif 파일이 아닙니다.');
}
if (preg_match("/\.(gif|jpg|jpeg|png)$/i", $_FILES['mb_icon']['name'])) {
$dest_path = G5_DATA_PATH.'/member/'.$mb_id;
move_uploaded_file($_FILES['mb_icon']['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_icon_width'] || $size[1] > $config['cf_member_icon_height']) {
@unlink($dest_path);
}
}
}
}
// 회원 이미지 삭제
if ($del_photo)
@unlink(G5_DATA_PATH.'/member_images/'.$mb_id);
// 회원 이미지 업로드
if (is_uploaded_file($_FILES['reg_photo']['tmp_name'])) {
if (!preg_match("/\.(gif|jpg|png)$/i", $_FILES['reg_photo']['name'])) {
alert($_FILES['reg_photo']['name'] . '은(는) gif 파일이 아닙니다.');
}
if (preg_match("/\.(gif|jpg|png)$/i", $_FILES['reg_photo']['name'])) {
$photo_dest_path = G5_DATA_PATH.'/member_image/'.$mb_id;
move_uploaded_file($_FILES['reg_photo']['tmp_name'], $photo_dest_path);
chmod($photo_dest_path, G5_FILE_PERMISSION);
if (file_exists($photo_dest_path)) {
$photo_size = getimagesize($photo_dest_path);
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
if ($photo_size[0] > $config['cf_1'] || $photo_size[1] > $config['cf_2']) {
//@unlink($photo_dest_path);
}
}
}
}
8-1. 그누보드5 / skin / board / 스킨 / view.skin.php
작성자 <strong><?php echo $view['name'] ?><?php if ($is_ip_view) { echo " ($ip)"; } ?></strong>
를 다음과 같이 변경
<?php
if ($is_signature) {
$mb_icon = G5_DATA_PATH.'/member/'.$view['mb_id'];
if (file_exists($mb_icon)) {
$mb_icon = G5_DATA_URL.'/member/'.$view['mb_id'];
} else {
$mb_icon = $board_skin_url.'/img/member_no_icon.png';
}
echo '<img src="'.$mb_icon.'" alt="">';
} else { echo "작성자 "; }
?> <strong><?php echo $view['name'] ?><?php if ($is_ip_view) { echo " ($ip)"; } ?></strong>
8-2. 그누보드5 / skin / board / 스킨 / view.skin.php
<?php if ($is_signature) { ?><p><?php echo $signature ?></p><?php } ?>
를 아래와 같이 변경
<?php if ($is_signature) { ?>
<div style="width:100%;height:78px;margin-bottom:10px;border-bottom:1px solid #ddd; border-top:1px solid #ddd;color:#797979;">
<div style="float:left;width:58px;height:58px;padding:10px 0">
<?php
// 회원 사진
$mb_photo = G5_DATA_PATH.'/member_image/'.$view['mb_id'];
if (file_exists($mb_photo)) {
$mb_photo = G5_DATA_URL.'/member_image/'.$view['mb_id'];
echo '<img src="'.$mb_photo.'" alt="">';
} else {
$mb_photo = $board_skin_url.'/img/member_no_photo.gif';
echo '<img src="'.$mb_photo.'" alt="">';
}
?>
</div>
<div style="float:left;height:58px;padding:10px;text-align:top">
<?php
// 회원 아이콘
$mb_icon = G5_DATA_PATH.'/member/'.$view['mb_id'];
if (file_exists($mb_icon)) {
$mb_icon = G5_DATA_URL.'/member/'.$view['mb_id'];
} else {
$mb_icon = $board_skin_url.'/img/member_no_icon.png';
}
echo '<img src="'.$mb_icon.'" alt="">';
?>
</div>
<div style="padding:10px 0;overflow:auto;overflow-y;height:48px;">
<p><?php echo $signature ?></p>
</div>
</div>
<?php } ?>
9-1. 그누보드5 / skin / board / 스킨 / view_comment.skin.php
<h1><?php echo get_text($list[$i]['wr_name']); ?>님의 댓글</h1>
<?php echo $list[$i]['name'] ?>
를 다음과 같이 변경
<h1><?php echo get_text($list[$i]['wr_name']); ?>님의 댓글</h1>
<?php
if ($is_signature) {
$mb_icon = G5_DATA_PATH.'/member/'.$view['mb_id'];
if (file_exists($mb_icon)) {
$mb_icon = G5_DATA_URL.'/member/'.$view['mb_id'];
} else {
$mb_icon = $board_skin_url.'/img/member_no_icon.png';
}
echo '<img src="'.$mb_icon.'" alt="">';
}
?>
<?php echo $list[$i]['name'] ?>
9-2. 그누보드5 / skin / board / 스킨 / view_comment.skin.php
<p>
<?php if (strstr($list[$i]['wr_option'], "secret")) { ?><img src="<?php echo $board_skin_url; ?>/img/icon_secret.gif" alt="비밀글"><?php } ?>
<?php echo $comment ?>
</p>
를 다음과 같이 변경
<?php if ($is_signature) { ?>
<div style="height:auto;min-height:58px;">
<div style="float:left;padding-right:10px;text-align:top">
<?php
$mb_photo = G5_DATA_PATH.'/member_image/'.$list[$i]['mb_id'];
if (file_exists($mb_photo)) { // 등록한 사진이 있는 경우
$mb_photo = G5_DATA_URL.'/member_image/'.$list[$i]['mb_id'];
} else { // 등록한 사진이 없거나 비회원인 경우
$mb_photo = $board_skin_url.'/img/member_no_photo.gif';
}
echo '<img src="'.$mb_photo.'" alt="">';
?>
</div>
<div>
<?php if (strstr($list[$i]['wr_option'], "secret")) { ?><img src="<?php echo $board_skin_url; ?>/img/icon_secret.gif" alt="비밀글"><?php } ?>
<?php echo $comment ?>
</div>
</div>
<?php } else { ?>
<p>
<?php if (strstr($list[$i]['wr_option'], "secret")) { ?><img src="<?php echo $board_skin_url; ?>/img/icon_secret.gif" alt="비밀글"><?php } ?>
<?php echo $comment ?>
</p>
<?php } ?>
10-1. 그누보드5 / mobile / skin / board / 스킨 / view.skin.php
작성자 <strong><?php echo $view['name'] ?><?php if ($is_ip_view) { echo " ($ip)"; } ?></strong>
를 다음과 같이 변경
<?php
if ($is_signature) {
$mb_icon = G5_DATA_PATH.'/member/'.$view['mb_id'];
if (file_exists($mb_icon)) {
$mb_icon = G5_DATA_URL.'/member/'.$view['mb_id'];
} else {
$mb_icon = $board_skin_url.'/img/member_no_icon.png';
}
echo '<img src="'.$mb_icon.'" alt="">';
} else { echo "작성자 "; }
?> <strong><?php echo $view['name'] ?><?php if ($is_ip_view) { echo " ($ip)"; } ?></strong>
10-2. 그누보드5 / mobile / skin / board / 스킨 / view.skin.php
<?php if ($is_signature) { ?><p><?php echo $signature ?></p><?php } ?>
를 아래와 같이 변경
<?php if ($is_signature) { ?>
<div style="width:100%;height:78px;margin-bottom:10px;border-bottom:1px solid #ddd; border-top:1px solid #ddd;color:#797979;">
<div style="float:left;width:58px;height:58px;padding:10px 0">
<?php
// 회원 사진
$mb_photo = G5_DATA_PATH.'/member_image/'.$view['mb_id'];
if (file_exists($mb_photo)) {
$mb_photo = G5_DATA_URL.'/member_image/'.$view['mb_id'];
echo '<img src="'.$mb_photo.'" alt="">';
} else {
$mb_photo = $board_skin_url.'/img/member_no_photo.gif';
echo '<img src="'.$mb_photo.'" alt="">';
}
?>
</div>
<div style="float:left;height:58px;padding:10px;text-align:top">
<?php
// 회원 아이콘
$mb_icon = G5_DATA_PATH.'/member/'.$view['mb_id'];
if (file_exists($mb_icon)) {
$mb_icon = G5_DATA_URL.'/member/'.$view['mb_id'];
} else {
$mb_icon = $board_skin_url.'/img/member_no_icon.png';
}
echo '<img src="'.$mb_icon.'" alt="">';
?>
</div>
<div style="padding:10px 0;overflow:auto;overflow-y;height:48px;">
<p><?php echo $signature ?></p>
</div>
</div>
<?php } ?>
11-1. 그누보드5 / mobile / skin / board / 스킨 / view_comment.skin.php
<h1><?php echo get_text($list[$i]['wr_name']); ?>님의 댓글</h1>
<?php echo $list[$i]['name'] ?>
를 다음과 같이 변경
<h1><?php echo get_text($list[$i]['wr_name']); ?>님의 댓글</h1>
<?php
if ($is_signature) {
$mb_icon = G5_DATA_PATH.'/member/'.$view['mb_id'];
if (file_exists($mb_icon)) {
$mb_icon = G5_DATA_URL.'/member/'.$view['mb_id'];
} else {
$mb_icon = $board_skin_url.'/img/member_no_icon.png';
}
echo '<img src="'.$mb_icon.'" alt="">';
}
?>
<?php echo $list[$i]['name'] ?>
11-2. 그누보드5 / mobile / skin / board / 스킨 / view_comment.skin.php
<p>
<?php if (strstr($list[$i]['wr_option'], "secret")) { ?><span class="label label-warning" style="position:relative; top:-2px; margin-right: 5px;"><i class="fa fa-lock" aria-hidden="true" title="비밀글"></i></span><?php } ?>
<?=$comment ?>
</p>
를 다음과 같이 변경
<?php if ($is_signature) { ?>
<div style="height:auto;min-height:58px;">
<div style="float:left;padding-right:10px;text-align:top">
<?php
//echo $config[cf_1] + "10";
// 회원 사진
$mb_photo = G5_DATA_PATH.'/member_image/'.$list[$i]['mb_id'];
if (file_exists($mb_photo)) { // 등록한 사진이 있는 경우
$mb_photo = G5_DATA_URL.'/member_image/'.$list[$i]['mb_id'];
echo '<img src="'.$mb_photo.'" alt="">';
} else { // 등록한 사진이 없거나 비회원인 경우
$mb_photo = $board_skin_url.'/img/member_no_photo.gif';
echo '<img src="'.$mb_photo.'" alt="">';
}
?>
</div>
<div>
<?php if (strstr($list[$i]['wr_option'], "secret")) { ?><img src="<?php echo $board_skin_url; ?>/img/icon_secret.gif" alt="비밀글"><?php } ?>
<?php echo $comment ?>
</div>
</div>
<?php } else { ?>
<p>
<?php if (strstr($list[$i]['wr_option'], "secret")) { ?><span class="label label-warning" style="position:relative; top:-2px; margin-right: 5px;"><i class="fa fa-lock" aria-hidden="true" title="비밀글"></i></span><?php } ?>
<?=$comment ?>
</p>
<?php } ?>
관련자료
https://sir.kr/bbs/board.php?bo_table=g5_tip&wr_id=2162
댓글목록
등록된 댓글이 없습니다.