회원사진 입력받는것,, 보시고 틀린부분좀 체크해주세요 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

회원사진 입력받는것,, 보시고 틀린부분좀 체크해주세요 정보

회원사진 입력받는것,, 보시고 틀린부분좀 체크해주세요

본문

그누 ver 4.05.01

팁텍에 있는 말탄개미님이 올린것 보고 따라해 본것입니다. 그저 따라하기이고 지식은 없습니다.

mb_1 이용


수정파일

1. bbs/register_form.php
2. bbs/register_form_update.php
3. skin/member/basic/register_form.skin.php



더 수정해야할 것이 있는지 모르겠네요. 우선 관리자화면에서 하는건 뺐는데 상관없죠?
member_form.php 하고 member_form_update.php 는 adm 디렉토리로 이동되었네요.
말탄개미님이 올린것에 보면 bbs 디렉토리에 있었는데,,,,



1. register_form.php

마지만 즈음에
// 회원아이콘 경로
$mb_icon = "$g4[path]/data/member/".substr($member[mb_id],0,2)."/$member[mb_id].gif";
$mb_1 = "$g4[path]/data/member/".substr($member[mb_id],0,2)."/photo.gif";
$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";




2. 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))
            {
                $size = getimagesize($dest_path);
                // 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
                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_1)
    @unlink("$mb_dir/photo.gif");

$msg = "";
// 사진 업로드
$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_member_icon_size])
        {
           
    @mkdir($mb_dir, 0707);
            @chmod($mb_dir, 0707);
            $dest_path = "$mb_dir/photo.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_member_icon_whdth] || $size[1] > $config[cf_member_icon_height])
                    @unlink($dest_path);
            }
        }
    }
    else
        $msg .= $_FILES[mb_1][name] . "은(는) gif 파일이 아닙니다.";
}



3. 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=m_text 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]) { ?>
        <TR bgcolor="#FFFFFF">
            <TD width="160" class=m_title>회원사진</TD>
            <TD class=m_padding><INPUT class=m_text type=file name='mb_1' 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_1)) { ?>
                                <br><img src='<?=$mb_1?>' align=absmiddle> <input type=checkbox name='del_mb_1' value='1'>삭제
                            <? } ?>
                        </td>
                    </tr>
                </table></TD>
        </TR>
        <? } ?>




폼하고 변수등 바꿔줘야 할 사항이 틀렸을 것 같은데 잘 모르겠습니다.
cf_member_icon_size 등등을 그대로 썼는데 이것을 관리화면에서 여분필드에 등록하고
cf_1 , cf_2 이렇게 쓸수 있나요?




// submit 최종 폼체크
funtion 에서


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

    if (typeof f.mb_1 != "undefined")
    {
        if (f.mb_1.value)
        {
            if (!f.mb_1.value.toLowerCase().match(/.(gif)$/i))
            {
                alert("회원아이콘이 gif 파일이 아닙니다.");
                f.mb_1.focus();
                return;
            }
        }
    }
   



잘못된 부분과 더 수정해줘야 할 사항있으면 체크좀 해주세요...
이상태로는 작동을 안하네요.
  • 복사

댓글 전체

** mb_1 을 이용하여 회원 사진 입력받기

- 그누 ver. 4.05.01
- 팁텍에 있는 말탄개미님 것을 보고 따라했습니다.

** 수정파일

1. bbs/register_form.php
2. bbs/register_form_update.php
3. skin/member/basic/register_form.skin.php

수정이랄것도 없이 그냥 추가만 하시면 됩니다.
관리자모드의 회원정보수정에서도 구현하려면 별도로 다음 화일을 수정해야합니다.
이는 말탄개님이 올리신것을 보고 별도로 작업하세요.

adm/member_form.php
adm/member_form_update.php

____________________________________________________

*** 1단계

관리자모드>기본환경설정 맨 아래 여분필드 3개를 사용합니다.

여분필드1(cf_1) 에 60 (원하는 가로크기)입력
여분필드2(cf_2) 에 80 (원하는 세로크기)입력
여분필드3(cf_3) 에 6000 (원하는 파일크기)입력

upgrade 요것은 안눌러도 될것같은데 손해날건 없으니 한번 꾹 눌러주세요 .



*** 2단계 : 각 파일에 추가
-----------------
1. bbs/register_form.php
------------------

마지만 즈음에 mb_1 부분만 추가하시면 됩니다. jpg 형식

// 회원아이콘 경로
$mb_icon = "$g4[path]/data/member/".substr($member[mb_id],0,2)."/$member[mb_id].gif";
$mb_1 = "$g4[path]/data/member/".substr($member[mb_id],0,2)."/$member[mb_id].jpg";
$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";


------------------
2. bbs/register_form_update.php
-------------------
// 사진 삭제    중간쯤 아이콘부분의 밑에 추가하시면 됩니다.


if ($del_mb_1)
    @unlink("$mb_dir/$mb_id.jpgf");

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


------------------------
3. skin/member/basic/register_form.skin.php
--------------------------

그누 기본멤버스킨을 기준으로 합니다. 변형된 스킨사용시 그에 맞게 수정하세요.
table은 저한테 맞게끔 그렸습니다.

<? if ($member[mb_level] >= $config[cf_icon_level]) { ?>
        <TR bgcolor="#FFFFFF">
            <TD width="160" class=m_title>회원사진 또는 <br><br>아바타 또는 이쁜그림</TD>
            <TD class=m_padding><INPUT class=m_text type=file name='mb_1' size=30><br>
    * (가로<?=$config[cf_1]?>픽셀)x세로(<?=$config[cf_2]?>픽셀) 이하(jpg만 가능 / 용량:<?=number_format($config[cf_3])?>바이트 이하)
               
<? if ($w == "u" && file_exists($mb_1)) { ?>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width=70><img src='<?=$mb_1?>' align=absmiddle></td>
    <td><br>이거 사진 구현하느라 무쟈게 고생했어요<br>방명록등 특정게시판에 사용되니깐 입력하세요<br><br>
    <input type=checkbox name='del_mb_1' value='1'>삭제
    </td>
    </tr>
                </table>
 <? } ?>

중략----------------밑에 합수부분에서 역시 아이콘 부분 밑에 추가하세요.

    if (typeof f.mb_1 != "undefined")
    {
        if (f.mb_1.value)
        {
            if (!f.mb_1.value.toLowerCase().match(/.(jpg)$/i))
            {
                alert("그림이 jpg 파일이 아닙니다.");
                f.mb_1.focus();
                return;
            }
        }
    }


파일수정 끝
===================================

*** 3단계 : 적용하고 테스트하는 단계입니다.

1. 손해날건 없은니깐 다시한번 관리자모드에서 upgrade 눌러주세요.
2. 사진이 저장되는 경로 확인
 data/member/"자기아이디의 앞 두글자"/"자기아이디".jpg
 이렇게 저장됩니다.

아이콘이나 사진을 올리거나 바꾸는 경우 작업후 브라우저의 새로고침을 눌러주세요.

이상입니다.
© SIRSOFT
현재 페이지 제일 처음으로