회원아이콘에 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> (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> (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 도 가능 -------------- 끝
으로 수정
링크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> (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> (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
4
댓글 2개
추천드립니다.
그리고 홈피 바닥재 깔으셧네요..
우리집 거실인줄 알았습니다..^^
그리고 홈피 바닥재 깔으셧네요..
우리집 거실인줄 알았습니다..^^
그러네요. 바닥재네요 ㅎㅎ