강좌 회원 사진 기능 만들기
본문
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=30550&sfl=mb_id%2C1&stx=happyjung&page=2
그누보드4에 적용한 해피정님의 팁을 그누보드5에 맞게 정리했습니다.
1. 여분 필드 설정을 합니다.
관리자 모드 → 환경설정 → 기본환경설정 → 여분필드
cf_1 : 58 (가로)
cf_2 : 58 (세로)
cf_3 : 50000 (파일용량)
2. 'data' 폴더 안에 'member_image' 폴더를 추가하고, 권한을 '707'로 변경합니다.
회원사진을 등록하면... 회원 아이디별로 자동으로 하위 폴더가 생성됩니다.
3. '/skin/member/basic/register_form.skin.php'에 위 소스를 추가합니다.
'회원 아이콘' 관련 소스 아랫쪽에 삽입합니다.
4. '/bbs/register_form.php'에 위 소스를 추가합니다.
'회원 아이콘 경로' 아랫쪽에 삽입합니다.
5. '/bbs/register_form_update.php'에 위 소스를 추가합니다.
'회원 아이콘' 관련 소스 아랫쪽에 삽입합니다.
완성해서 적용해본 모습입니다.
(사진은 우리집 이쁜 큰공쥬...)
가입폼에는 적용되지않고... 가입 후 '정보수정'에서만 사용할 수 있습니다.
관리자 모드에서도 사용할 수 있게 다음 절차를 진행합니다.
6. '/adm/member_form.php'에 위 소스를 추가합니다.
'회원 아이콘' 관련 소스 아랫쪽에 삽입합니다.
7. '/adm/member_form_update.php'에 위 소스를 추가합니다.
'회원 아이콘' 관련 소스 아랫쪽에 삽입합니다.
완성해서 적용해본 모습입니다.
올려드리는 파일은... 삽입 위치 참조용으로만 사용하십시오.
혹시, 제가 임의로 수정한 부분이 있을지도 모르니...
그누보드4에 적용한 해피정님의 팁을 그누보드5에 맞게 정리했습니다.
1. 여분 필드 설정을 합니다.
관리자 모드 → 환경설정 → 기본환경설정 → 여분필드
cf_1 : 58 (가로)
cf_2 : 58 (세로)
cf_3 : 50000 (파일용량)
2. 'data' 폴더 안에 'member_image' 폴더를 추가하고, 권한을 '707'로 변경합니다.
회원사진을 등록하면... 회원 아이디별로 자동으로 하위 폴더가 생성됩니다.
<tr> <th scope="row"><label for="reg_mb_1">회원사진</label></th> <td> <span class="frm_info"> 이미지 크기는 가로 <?php echo $config[cf_1] ?>픽셀, 세로 <?php echo $config[cf_2] ?>픽셀 이하로 해주세요.<br> gif만 가능하며 용량 <?php echo number_format($config[cf_3]) ?>바이트 이하만 등록됩니다. </span> <input type="file" name="mb_1" id="reg_mb_1" class="frm_input"> <?php if ($w == 'u' && file_exists($mb_1_path)) { ?> <img src="<?php echo $mb_1_url ?>" alt="회원사진"> <input type="checkbox" name="del_mb_1" value="1" id="del_mb_1"> <label for="del_mb_1">삭제</label> <?php } ?> </td> </tr>
3. '/skin/member/basic/register_form.skin.php'에 위 소스를 추가합니다.
'회원 아이콘' 관련 소스 아랫쪽에 삽입합니다.
// 회원사진 경로 $mb_1_path = G5_DATA_PATH.'/member_image/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif'; $mb_1_url = G5_DATA_URL.'/member_image/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';
4. '/bbs/register_form.php'에 위 소스를 추가합니다.
'회원 아이콘 경로' 아랫쪽에 삽입합니다.
$mb1_dir = G5_DATA_PATH.'/member_image/'.substr($mb_id,0,2); // 회원사진 삭제 if (isset($_POST['del_mb_1'])) { @unlink($mb1_dir.'/'.$mb_id.'.gif'); } // 회원사진 업로드 $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, G5_DIR_PERMISSION); @chmod($mb1_dir, G5_DIR_PERMISSION); $dest_path = $mb1_dir.'/'.$mb_id.'.gif'; move_uploaded_file($_FILES['mb_1']['tmp_name'], $dest_path); chmod($dest_path, G5_FILE_PERMISSION); 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 .= '회원사진을 '.number_format($config[cf_3]).'바이트 이하로 업로드 해주십시오.'; } } else { $msg .= $_FILES['mb_1']['name'].'은(는) gif 파일이 아닙니다.'; } }
5. '/bbs/register_form_update.php'에 위 소스를 추가합니다.
'회원 아이콘' 관련 소스 아랫쪽에 삽입합니다.
완성해서 적용해본 모습입니다.
(사진은 우리집 이쁜 큰공쥬...)
가입폼에는 적용되지않고... 가입 후 '정보수정'에서만 사용할 수 있습니다.
관리자 모드에서도 사용할 수 있게 다음 절차를 진행합니다.
<tr> <th scope="row"><label for="mb_1">회원사진</label></th> <td colspan="3"> <?php echo help('이미지 크기는 <strong>넓이 '.$config['cf_1'].'픽셀 높이 '.$config['cf_2'].'픽셀</strong>로 해주세요.') ?> <input type="file" name="mb_1"> <?php $mb1_dir = substr($mb['mb_id'],0,2); $mb_1 = G5_DATA_PATH.'/member_image/'.$mb1_dir.'/'.$mb['mb_id'].'.gif'; if (file_exists($mb_1)) { $mb_1 = G5_DATA_URL.'/member_image/'.$mb1_dir.'/'.$mb['mb_id'].'.gif'; echo '<img src="'.$mb_1.'" alt="">'; echo '<input type="checkbox" name="del_mb_1" value="1">삭제'; } ?> </td> </tr>
6. '/adm/member_form.php'에 위 소스를 추가합니다.
'회원 아이콘' 관련 소스 아랫쪽에 삽입합니다.
// 회원사진 삭제 if ($del_mb_1) @unlink(G5_DATA_PATH.'/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(G5_DATA_PATH.'/member_image/'.$mb_dir, G5_DIR_PERMISSION); @chmod(G5_DATA_PATH.'/member_image/'.$mb_dir, G5_DIR_PERMISSION); $dest_path = G5_DATA_PATH.'/member_image/'.$mb_dir.'/'.$mb_id.'.gif'; move_uploaded_file($_FILES['mb_1']['tmp_name'], $dest_path); chmod($dest_path, G5_FILE_PERMISSION); if (file_exists($dest_path)) { $size = getimagesize($dest_path); // 사진의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 사진 삭제 if ($size[0] > $config['cf_1'] || $size[1] > $config['cf_2']) { @unlink($dest_path); } } } }
7. '/adm/member_form_update.php'에 위 소스를 추가합니다.
'회원 아이콘' 관련 소스 아랫쪽에 삽입합니다.
완성해서 적용해본 모습입니다.
올려드리는 파일은... 삽입 위치 참조용으로만 사용하십시오.
혹시, 제가 임의로 수정한 부분이 있을지도 모르니...
왕초보입니다. 많은 지도편달 부탁드립니다~^^
자주 가는 곳 : SIR
추천0 비추천 0
첨부파일
- member_photo.zip (15.0K) 40회 다운로드 | DATE : 2014-10-04 17:32:34
댓글목록 0
등록된 댓글이 없습니다.