회원아이콘에 gif, png 2개 사용하기 > 그누4 팁자료실

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

회원아이콘에 gif, png 2개 사용하기 정보

회원아이콘에 gif, png 2개 사용하기

본문

지콩랩에서 쓰는 회원아이콘 gif, png 2개 사용하기 팁입니다.
링크1을 타고 가시면 png, gif 각각 적용 모습을 보실 수 있습니다.

홈페이지에 배경색이나 배경이미지를 사용하시는 경우 유용하리라 생각됩니다.

새로운 회원아이콘을 올리면 기존의 회원아이콘은 자동으로 삭제합니다.
회원아이콘 삭제를 체크하지 않고 회원아이콘을 올리면 확장자가 다를 시 정상적으로 반영되지 않을 수 있기 때문입니다. (못난 코딩 ㅠ)
ex) member.gif 기존 파일이 있는 상태에서 이 파일이 지워지지 않고 member.png 를 업로드 할 시 gif 출력되는 예

기존에 jpg 도 사용하는 방법이 있긴 한데 jpg 를 업로드하면 gif 로 변환하는 방식이더군요.
jpg도 테스트를 해봤는데 이미지파일이 아닙니다.(bmp 파일 제외) 라는 메세지가 자꾸 떠서
일단 jpg 는 포기했습니다.



1. lib/common.lib.php 892 라인
$icon_file = "$g4[path]/data/member/$mb_dir/$mb_id.gif";

//지운아빠 회원아이콘에 png 도 가능 2012.02.13
if (is_file("$g4[path]/data/member/$mb_dir/$mb_id.gif")) $icon_ext = ".gif";
else if (is_file("$g4[path]/data/member/$mb_dir/$mb_id.png")) $icon_ext = ".png";
$icon_file = "$g4[path]/data/member/$mb_dir/$mb_id$icon_ext";
//지운아빠 회원아이콘에 png 도 가능 -------------- 끝
으로 수정

2. adm/member_form.php  129라인
$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'>삭제";
}

// 지운아빠 회원아이콘 관리 2012.2.13
if (is_file("$g4[path]/data/member/$mb_dir/$mb[mb_id].gif")) $icon_ext = ".gif";
else if (is_file("$g4[path]/data/member/$mb_dir/$mb[mb_id].png")) $icon_ext = ".png";
$icon_file = "$g4[path]/data/member/$mb_dir/$mb[mb_id]$icon_ext";
if (file_exists($icon_file)) {
echo "<br><img src='$icon_file' align=absmiddle>";
echo " <input type=hidden name='del_icon_ext' value='$icon_ext' />";
}
// 지운아빠 회원아이콘 관리 ----------- 끝
으로 수정



3. adm/member_form_update.php 78라인
// 회원 아이콘 삭제
if ($del_mb_icon)
@unlink("$g4[path]/data/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("$g4[path]/data/member/$mb_dir", 0707);
@chmod("$g4[path]/data/member/$mb_dir", 0707);

$dest_path = "$g4[path]/data/member/$mb_dir/$mb_id.gif";

move_uploaded_file($_FILES[mb_icon][tmp_name], $dest_path);
chmod($dest_path, 0606);

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);
}
}
}

// 지운아빠 회원아이콘에 png 도 가능 2012.02.13
// 회원 아이콘 삭제
if ($_FILES[mb_icon][name])
@unlink("$g4[path]/data/member/$mb_dir/$mb_id$del_icon_ext");

// 아이콘 업로드
if (is_uploaded_file($_FILES[mb_icon][tmp_name])) {
if (!preg_match("/\.(gif|jpg|png)$/i", $_FILES[mb_icon][name])) {
alert($_FILES[mb_icon][name] . '은(는) gif, png 파일이 아닙니다.');
}

if (preg_match("/\.(gif|png)$/i", $_FILES[mb_icon][name])) {
if (preg_match("/\.(gif)$/i", $_FILES[mb_icon][name])) $icon_ext = ".gif";
else if (preg_match("/\.(png)$/i", $_FILES[mb_icon][name])) $icon_ext = ".png";
@mkdir("$g4[path]/data/member/$mb_dir", 0707);
@chmod("$g4[path]/data/member/$mb_dir", 0707);

$dest_path = "$g4[path]/data/member/$mb_dir/$mb_id$icon_ext";

move_uploaded_file($_FILES[mb_icon][tmp_name], $dest_path);
chmod($dest_path, 0606);

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);
}
}
}
// 지운아빠 회원아이콘에 png, jpg도 가능 ------------------------- 끝
으로 수정

4. member skin 의 register_form.skin.php (1) 304라인
<? 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>&nbsp;&nbsp;(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>
<? } ?>

<? if ($member[mb_level] >= $config[cf_icon_level]) { //지운아빠 회원아이콘에 png 도 가능 2012.02.13?>
<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>&nbsp;&nbsp;(gif, png만 가능 / 용량:<?=number_format($config[cf_member_icon_size])?>바이트 이하만 등록됩니다.)
<? if ($w == "u" && file_exists($mb_icon)) {
$mb_dir = substr($member['mb_id'],0,2);
if (is_file("$g4[path]/data/member/$mb_dir/$member[mb_id].gif")) $icon_ext = ".gif";
else if (is_file("$g4[path]/data/member/$mb_dir/$member[mb_id].png")) $icon_ext = ".png";
$icon_file = "$g4[path]/data/member/$mb_dir/$member[mb_id]$icon_ext";
echo $icon_ext;
?>
<input type="hidden" name="del_icon_ext" value="<?=$icon_ext?>" />
<? } ?>
</td>
</tr>
</table></TD>
</TR>
<? } //지운아빠 회원아이콘에 png 도 가능 2012.02.13 ---------- 끝?>
으로 수정

(2) 526라인
if (!f.mb_icon.value.toLowerCase().match(/.(gif)$/i)) {
alert('회원아이콘이 gif 파일이 아닙니다.');

if (!f.mb_icon.value.toLowerCase().match(/.(gif|png)$/i)) { // 지운아빠 회원아이콘 png 도 가능 2012.02.13
alert('회원아이콘이 gif, png 파일이 아닙니다.'); // ----- 끝
으로 수정

5. bbs/registe_form_update.php 121라인
if ($del_mb_icon)
    @unlink("$mb_dir/$mb_id.gif");

$msg = "";

// 아이콘 업로드
$mb_icon = "";
if (is_uploaded_file($_FILES[mb_icon][tmp_name]))
{
if (preg_match("/(\.gif)$/i", $_FILES[mb_icon][name]))
{
// 아이콘 용량이 설정값보다 이하만 업로드 가능
if ($_FILES[mb_icon][size] <= $config[cf_member_icon_size])
{
@mkdir($mb_dir, 0707);
@chmod($mb_dir, 0707);
$dest_path = "$mb_dir/$mb_id.gif";
move_uploaded_file($_FILES[mb_icon][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_member_icon_width] || $size[1] > $config[cf_member_icon_height])
@unlink($dest_path);
//=================================================================\
}
}
}
else
$msg .= $_FILES[mb_icon][name] . "은(는) gif 파일이 아닙니다.";
}

//지운아빠 회원아이콘에 png 도 가능
// 아이콘 삭제
if ($_FILES[mb_icon][name])
@unlink("$mb_dir/$mb_id$del_icon_ext");

$msg = "";

// 아이콘 업로드
$mb_icon = "";
if (is_uploaded_file($_FILES[mb_icon][tmp_name]))
{
if (preg_match("/\.(gif|png)$/i", $_FILES[mb_icon][name]))
{
if (preg_match("/\.(gif)$/i", $_FILES[mb_icon][name])) $icon_ext = ".gif";
else if (preg_match("/\.(png)$/i", $_FILES[mb_icon][name])) $icon_ext = ".png";
// 아이콘 용량이 설정값보다 이하만 업로드 가능
if ($_FILES[mb_icon][size] <= $config[cf_member_icon_size])
{
@mkdir($mb_dir, 0707);
@chmod($mb_dir, 0707);
$dest_path = "$mb_dir/$mb_id$icon_ext";
move_uploaded_file($_FILES[mb_icon][tmp_name], $dest_path);
chmod($dest_path, 0606);
if (file_exists($dest_path))
{
//=================================================================\
// 090714
// gif 파일에 악성코드를 심어 업로드 하는 경우를 방지
// 에러메세지는 출력하지 않는다.
//-----------------------------------------------------------------
$size = getimagesize($dest_path);
if ($size[2] != 1 && $size[2] !=3) // gif, png 파일이 아니면 올라간 이미지를 삭제한다. // 지운아빠 2012.02.13
@unlink($dest_path);
else
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
if ($size[0] > $config[cf_member_icon_width] || $size[1] > $config[cf_member_icon_height])
@unlink($dest_path);
//=================================================================\
}
}
}
else
$msg .= $_FILES[mb_icon][name] . "은(는) gif, png 파일이 아닙니다.";
}
//지운아빠 회원아이콘에 png 도 가능 -------------- 끝
으로 수정
추천
4

댓글 2개

전체 2 |RSS
그누4 팁자료실 내용 검색
  • 개별 목록 구성 번호 제목 작성자 작성일 추천 조회
  • 게시물이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT