프로필 기능 추가. > 그누4 팁자료실

그누4 팁자료실

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

프로필 기능 추가. 정보

프로필 기능 추가.

본문

질문 안받습니다.~
(관리자 설정에서... 프로필 사진 크기 설정 넣으려고 햇는데 귀차니즘 때문에..... 대신하여 크기는 수동으로 추가하고.... 파일 크기는..... 닉네임아이콘크기를 그대로 씁니다.)
 
 
 
---------------------------------------------------------------------------------------------
회원 프로필 추가
---------------------------------------------------------------------------------------------
/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="5">
        <input type=file name='mb_profile' class=ed><br>이미지 크기는 58x58으로 해주세요.
        <?
        $mb_dir = substr($mb[mb_id],0,2);
        $profile_file = "$g4[path]/data/member/$mb_dir/profile_$mb[mb_id].jpg";
        if (file_exists($profile_file)) {
            echo "<br><img src='$profile_file' align=absmiddle>";
            echo " <input type=checkbox name='del_mb_profile' value='1' class='csscheck'>삭제";
        }  
        ?>
    </td>
</tr>
 
---------------------------------------------------------------------------------------------
/adm/member_form_update.php 수정
---------------------------------------------------------------------------------------------
    // 회원 아이콘 삭제
    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);
                }
            }
        }
    }
--------------------------
다음에 아래 소스 추가
--------------------------
 // 회원 프리필 사진 삭제
 $width_profile = "58";
 $height_profile = "58";
    if ($del_mb_profile)
        @unlink("$g4[path]/data/member/$mb_dir/profile_$mb_id.jpg");
    // 프리필 사진 업로드
    if (is_uploaded_file($_FILES[mb_profile][tmp_name])) {
        if (!preg_match("/(\.jpg)$/i", $_FILES[mb_profile][name])) {
            alert($_FILES[mb_profile][name] . '은(는) jpg 파일이 아닙니다.');
        }
        if (preg_match("/(\.jpg)$/i", $_FILES[mb_profile][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/profile_$mb_id.jpg";
            move_uploaded_file($_FILES[mb_profile][tmp_name], $dest_path);
            chmod($dest_path, 0606);
            if (file_exists($dest_path)) {
                $size = getimagesize($dest_path);
                // 프리필 사진의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
                if ($size[0] > $width_profile || $size[1] > $height_profile) {
                    @unlink($dest_path);
     alert("프로필 사진이 너무 큽니다. ".$width_profile."x".$height_profile);
                }
            }
        }
    }
---------------------------------------------------------------------------------------------
/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>
        <? } ?>
--------------------------
다음에 아래 소스 추가
--------------------------
<TR bgcolor="#FFFFFF">
            <TD width="160" class=m_title>회원프로필 사진</TD>
            <TD class=m_padding><INPUT class=ed type=file name='mb_profile' size=30>
                <table width="350" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                        <td class=m_padding3>* 이미지 크기는 가로(58픽셀)x세로(58픽셀) 이하로 해주세요.<br>  (jpg만 가능 / 용량:<?=number_format($config[cf_member_icon_size])?>바이트 이하만 등록됩니다.)
       <?
        $mb_dir = substr($member[mb_id],0,2);
        $profile_file = "$g4[path]/data/member/$mb_dir/profile_$member[mb_id].jpg";
       ?>
                            <? if ($w == "u" && file_exists($profile_file)) { ?>
                                <br><img src='<?=$profile_file?>' align=absmiddle> <input type=checkbox name='del_mb_profile' value='1'>삭제
                            <? } ?>
                        </td>
                    </tr>
                </table></TD>
        </TR>
----------------------------------
추가 수정
----------------------------------
if (typeof f.mb_icon != 'undefined') {
        if (f.mb_icon.value) {
            if (!f.mb_icon.value.toLowerCase().match(/.(gif)$/i)) {
                alert('회원아이콘이 gif 파일이 아닙니다.');
                f.mb_icon.focus();
                return false;
            }
        }
    }
--------------------------
다음에 아래 소스 추가
--------------------------
if (typeof f.mb_profile != 'undefined') {
        if (f.mb_profile.value) {
            if (!f.mb_profile.value.toLowerCase().match(/.(jpg)$/i)) {
                alert('회원아이콘이 jpg 파일이 아닙니다.');
                f.mb_profile.focus();
                return false;
            }
        }
    }
---------------------------------------------------------------------------------------------
/bbs/register_form_update.php 수정
---------------------------------------------------------------------------------------------
// 아이콘 삭제
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 파일이 아닙니다.";
}
--------------------------
다음에 아래 소스 추가
--------------------------
// 프로필 사진 삭제
if ($del_mb_profile)
    @unlink("$mb_dir/profile_$mb_id.jpg");
$msg = "";
// 프로필 사진 업로드
$width_profile = "59"; // 프로필 사진 가로 크기
$height_profile = "59"; // 프로필 사진 세로 크기
$mb_profile = "";
if (is_uploaded_file($_FILES[mb_profile][tmp_name]))
{
    if (preg_match("/(\.jpg)$/i", $_FILES[mb_profile][name]))
    {
        // 프로필 사진 용량이 설정값보다 이하만 업로드 가능
        if ($_FILES[mb_profile][size] <= $config[cf_member_icon_size])
        {
            @mkdir($mb_dir, 0707);
            @chmod($mb_dir, 0707);
            $dest_path = "$mb_dir/profile_$mb_id.jpg";
            move_uploaded_file($_FILES[mb_profile][tmp_name], $dest_path);
            chmod($dest_path, 0606);
            if (file_exists($dest_path))
            {
                //=================================================================\
                // 090714
                // jpg 파일에 악성코드를 심어 업로드 하는 경우를 방지
                // 에러메세지는 출력하지 않는다.
                //-----------------------------------------------------------------
                $size = getimagesize($dest_path);
                if ($size[2] != 2){ // jpg 파일이 아니면 올라간 이미지를 삭제한다.
                    @unlink($dest_path);
     alert("jpg형식이 아닙니다.");
    }
    else if($size[0] > $width_profile || $size[1] > $height_profile){ // 프로필 사진의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
                    @unlink($dest_path);
     alert("프로필 사진이 너무 큽니다.".$width_profile."x".$height_profile);
    }
                //=================================================================\
            }
        }
    }
    else
        $msg .= $_FILES[mb_profile][name] . "은(는) jpg 파일이 아닙니다.";
}
---------------------------------------------------------------------------------------------
프로필 사진 불러오는법
---------------------------------------------------------------------------------------------
<?
$mb_dir = substr($mb[mb_id],0,2);  // or $mb_dir = substr($member[mb_id],0,2);
$profile_file = "$g4[path]/data/member/$mb_dir/profile_$mb[mb_id].jpg";  // or $profile_file = "$g4[path]/data/member/$mb_dir/profile_$member[mb_id].jpg"; 
echo "<img src='".$profile_file.">";
?>
추천
3

댓글 4개

전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

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