그누보드 [G4] 회원가입시 회원이미지 등록 받기
페이지 정보
본문
웹프리존 님이 올려주신 팁의 내용에서 일부 수정했습니다.
원본. http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=27623
수정1. 회원이미지 업로드 폴더 : /data/memberimg -> /data/member_image
수정2. 관리자 > 회원관리 > 정보수정 : 기능추가
1. 관리자 - 기본환경설정 - 맨 아래 여분필드
cf_1 : 58 <-- 가로사이즈
cf_2 : 58 <-- 세로사이즈
cf_3 : 50000 <-- 파일용량
2. /skin/member/basic/register_form.skin.php
<? if ($member[mb_level] >= $config[cf_icon_level]) { ?>
<TR bgcolor="#FFFFFF">
<TD width="160" class=m_title>회원아이콘</TD>
<TD class=m_padding><INPUT class=ed type=file name='mb_icon' size=30>
<table width="350" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class=m_padding3>* 이미지 크기는 가로(<?=$config[cf_member_icon_width]?>픽셀)x세로(<?=$config[cf_member_icon_height]?>픽셀) 이하로 해주세요.<br> (gif만 가능 / 용량:<?=number_format($config[cf_member_icon_size])?>바이트 이하만 등록됩니다.)
<? if ($w == "u" && file_exists($mb_icon)) { ?>
<br><img src='<?=$mb_icon?>' align=absmiddle> <input type=checkbox name='del_mb_icon' value='1'>삭제
<? } ?>
</td>
</tr>
</table></TD>
</TR>
<? } ?>
를 아래와 같이 변경
<?php if ($member[mb_level] >= $config[cf_icon_level]) { ?>
<TR bgcolor="#FFFFFF">
<TD width="160" class=m_title>회원아이콘</TD>
<TD class=m_padding><INPUT class=ed type=file name='mb_icon' size=30>
<table width="350" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class=m_padding3>* 이미지 크기는 가로(<?php echo $config[cf_member_icon_width]; ?>픽셀)x세로(<?php echo $config[cf_member_icon_height]; ?>픽셀) 이하로 해주세요.<br> (gif만 가능 / 용량:<?php echo number_format($config[cf_member_icon_size]); ?>바이트 이하만 등록됩니다.)
<?php if ($w == "u" && file_exists($mb_icon)) { ?>
<br><img src='<?php echo $mb_icon; ?>' align=absmiddle> <input type=checkbox name='del_mb_icon' value='1'>삭제
<? } ?>
</td>
</tr>
</table></TD>
</TR>
<TR bgcolor="#FFFFFF">
<TD width="160" class=m_title>회원이미지</TD>
<TD class=m_padding><INPUT class=ed type=file name='mb_1' size=30>
<table width="350" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class=m_padding3>* 이미지 크기는 가로(<?php echo $config[cf_1]; ?>픽셀)x세로(<?php echo $config[cf_2]; ?>픽셀) 이하로 해주세요.<br> (gif만 가능 / 용량:<?php echo number_format($config[cf_3]); ?>바이트 이하만 등록됩니다.)
<?php if ($w == "u" && file_exists($mb_1)) { ?>
<br><img src='<?=$mb_1?>' align=absmiddle> <input type=checkbox name='del_mb_1' value='1'>삭제
<?php } ?>
</td>
</tr>
</table></TD>
</TR>
<?php } ?>
3. /bbs/register_form.php
$mb_icon = "$g4[path]/data/member/".substr($member[mb_id],0,2)."/$member[mb_id].gif";
를 아래와 같이 수정
$mb_icon = "$g4[path]/data/member/".substr($member[mb_id],0,2)."/$member[mb_id].gif";
$mb_1 = "$g4[path]/data/member_image/".substr($member[mb_id],0,2)."/$member[mb_id].gif"; // 회원이미지
4. ftp 접속해서 /data/ 폴더안에 member_image 폴더 추가, 권한 707 로 변경
5-1. /bbs/register_form_update.php
$mb_dir = "$g4[path]/data/member/".substr($mb_id,0,2);
// 아이콘 삭제
if ($del_mb_icon)
@unlink("$mb_dir/$mb_id.gif");
를 아래와 같이 내용추가
$mb_dir = "$g4[path]/data/member/".substr($mb_id,0,2);
$mb1_dir = "$g4[path]/data/member_image/".substr($mb_id,0,2); // 회원이미지 추가
// 아이콘 삭제
if ($del_mb_icon)
@unlink("$mb_dir/$mb_id.gif");
// 회원이미지 삭제
if ($del_mb_1)
@unlink("$mb1_dir/$mb_id.gif");
5-2. /bbs/register_form_update.php
// 아이콘 업로드 아래쪽에 내용추가
// 회원이미지 업로드
$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] <= $config[cf_3])
{
@mkdir($mb1_dir, 0707);
@chmod($mb1_dir, 0707);
$dest_path = "$mb1_dir/$mb_id.gif";
move_uploaded_file($_FILES[mb_1][tmp_name], $dest_path);
chmod($dest_path, 0606);
if (file_exists($dest_path))
{
//=================================================================\
// 090714
// gif 파일에 악성코드를 심어 업로드 하는 경우를 방지
// 에러메세지는 출력하지 않는다.
//-----------------------------------------------------------------
$size = getimagesize($dest_path);
if ($size[2] != 1) // gif 파일이 아니면 올라간 이미지를 삭제한다.
@unlink($dest_path);
else
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
if ($size[0] > $config[cf_1] || $size[1] > $config[cf_2])
@unlink($dest_path);
//=================================================================\
}
}
}
else
$msg .= $_FILES[mb_1][name] . "은(는) gif 파일이 아닙니다.";
}
6. /adm/member_form.php
<tr class='ht'>
<td>주소</td>
<td>
<input type=text class=ed name='mb_zip1' size=4 maxlength=3 readonly itemname='우편번호 앞자리' value='<? echo $mb[mb_zip1] ?>'> -
<input type=text class=ed name='mb_zip2' size=4 maxlength=3 readonly itemname='우편번호 뒷자리' value='<? echo $mb[mb_zip2] ?>'>
<a href="javascript:;" onclick="win_zip('fmember', 'mb_zip1', 'mb_zip2', 'mb_addr1', 'mb_addr2');"><img src='<?=$g4[bbs_img_path]?>/btn_zip.gif' align=absmiddle border=0></a>
<br><input type=text class=ed name='mb_addr1' size=40 readonly value='<? echo $mb[mb_addr1] ?>'>
<br><input type=text class=ed name='mb_addr2' size=25 itemname='상세주소' value='<? echo $mb[mb_addr2] ?>'> 상세주소 입력</td>
<td>회원아이콘</td>
<td colspan=3>
<input type=file name='mb_icon' class=ed><br>이미지 크기는 <?=$config[cf_member_icon_width]?>x<?=$config[cf_member_icon_height]?>으로 해주세요.
<?
$mb_dir = substr($mb[mb_id],0,2);
$icon_file = "$g4[path]/data/member/$mb_dir/$mb[mb_id].gif";
if (file_exists($icon_file)) {
echo "<br><img src='$icon_file' align=absmiddle>";
echo " <input type=checkbox name='del_mb_icon' value='1' class='csscheck'>삭제";
}
?>
</td>
</tr>
를 아래와 같이 변경
<tr class='ht'>
<td>주소</td>
<td colspan="3">
<input type=text class=ed name='mb_zip1' size=4 maxlength=3 readonly itemname='우편번호 앞자리' value='<?php echo $mb[mb_zip1]; ?>'> -
<input type=text class=ed name='mb_zip2' size=4 maxlength=3 readonly itemname='우편번호 뒷자리' value='<?php echo $mb[mb_zip2]; ?>'>
<a href="javascript:;" onclick="win_zip('fmember', 'mb_zip1', 'mb_zip2', 'mb_addr1', 'mb_addr2');"><img src='<?php echo $g4[bbs_img_path]; ?>/btn_zip.gif' align=absmiddle border=0></a>
<br><input type=text class=ed name='mb_addr1' size=40 readonly value='<?php echo $mb[mb_addr1]; ?>'>
<input type=text class=ed name='mb_addr2' size=25 itemname='상세주소' value='<?php echo $mb[mb_addr2]; ?>'> 상세주소 입력</td>
</tr>
<tr class='ht'>
<td>회원아이콘</td>
<td>
<input type=file name='mb_icon' class=ed><br>이미지 크기는 <?php echo $config[cf_member_icon_width]; ?>x<?php echo $config[cf_member_icon_height]; ?>으로 해주세요.
<?
$mb_dir = substr($mb[mb_id],0,2);
$icon_file = "$g4[path]/data/member/$mb_dir/$mb[mb_id].gif";
if (file_exists($icon_file)) {
echo "<br><img src='$icon_file' align=absmiddle>";
echo " <input type=checkbox name='del_mb_icon' value='1' class='csscheck'>삭제";
}
?>
</td>
<td>회원이미지</td>
<td>
<input type=file name='mb_1' class=ed><br>이미지 크기는 <?php echo $config[cf_1]; ?>x<?php echo $config[cf_2]; ?>으로 해주세요.
<?php
$mb1_dir = substr($mb[mb_id],0,2);
$mb_1 = "$g4[path]/data/member_image/$mb1_dir/$mb[mb_id].gif";
if (file_exists($mb_1)) {
echo "<br><img src='$mb_1' align=absmiddle>";
echo " <input type=checkbox name='del_mb_1' value='1' class='csscheck'>삭제";
}
?>
</td>
</tr>
7. /adm/member_form_update.php
// 회원 아이콘 삭제
하단에 아래 내용 추가
// 회원 이미지 삭제
if ($del_mb_icon)
@unlink("$g4[path]/data/member_image/$mb_dir/$mb_id.gif");
// 회원이미지 업로드
$mb_1 = "";
if (is_uploaded_file($_FILES[mb_1][tmp_name])) {
if (!preg_match("/(\.gif)$/i", $_FILES[mb_1][name])) {
alert($_FILES[mb_1][name] . '은(는) gif 파일이 아닙니다.');
}
if (preg_match("/(\.gif)$/i", $_FILES[mb_1][name])) {
@mkdir("$g4[path]/data/member_image/$mb_dir", 0707);
@chmod("$g4[path]/data/member_image/$mb_dir", 0707);
$dest_path = "$g4[path]/data/member_image/$mb_dir/$mb_id.gif";
move_uploaded_file($_FILES[mb_1][tmp_name], $dest_path);
chmod($dest_path, 0606);
if (file_exists($dest_path)) {
$size = getimagesize($dest_path);
// 이미지의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 이미지 삭제
if ($size[0] > $config[cf_1] || $size[1] > $config[cf_2]) {
@unlink($dest_path);
}
}
}
}
참고자료
댓글목록
등록된 댓글이 없습니다.