회원아이콘 파일 업데이트 경로 한번 봐주십시오.

회원아이콘 파일 업데이트 경로 한번 봐주십시오.

QA

회원아이콘 파일 업데이트 경로 한번 봐주십시오.

본문

사용하고자 하는 G5용 아이콘샵 게시판스킨입니다. 

http://sir.kr/g5_skin/10726 

G5에는 다행히 이 스킨이 있어서 사용해봤습니다.

저작자님이 시험삼아 하셨다는데 되긴 하더라구요.

 

아이콘샵은 구매시 해당회원의 아이디 앞두글자를 떼내서 

/data/member  폴더에 생성이 되고 고른 아이콘이 저장되는 방식입니다. 

admin이면 /data/member/ad/admin.gif

test면 /data/member/te/test.gif 

이런식이더라구요. (앞두글자가 같을 경우도 있을것 같은데 왜 굳이 아이디로 하지 않았는지 궁금하고)

 

좌우지간 설치후 첨엔 되는데 

변경하면 정확히 말하면 되다가 안됩니다.

서버처리시간문젠가 싶어서 기다려도 보고 캐시제거 새로고침도 해보고 했는데

되다 안되다 그러는데 그러다가 쭉 안됩니다. 

확인을 해봤더니...

 

최종 클릭 구매한 아이콘명으로 관리자에서 포인트구매내역에 찍히는데 포인트쪽은 이상이 없는것 같은데 말이죠.

data 폴더에 확인해보면 실제 아이콘 이미지는 다른것이 여전히 변경전 아이콘이 남아 있는 문제가 있습니다.

 

즉 덮어씌워지지 않는것 같았습니다.

 

아무래도 경로 문제 같기도 하구요. 

 

 

 

제가 까막눈이라... 다시한번 올려봅니다.

 

고수님들께서 한번 봐주시면 감사하겠습니다.

 

 

 

 

 

 

 

아래 부분들이 처리하는 곳인것 같습니다.

/bbs/iconbuy_update.php


<?php
include_once('./_common.php');
 
if (!$board['bo_table']) {
   alert('존재하지 않는 게시판입니다.', G5_URL);
}
 
if (!$bo_table) {
    $msg = "bo_table 값이 넘어오지 않았습니다.\\n\\nboard.php?bo_table=code 와 같은 방식으로 넘겨 주세요.";
    alert($msg);
}
 
 
if (isset($wr_id) && $wr_id) {
    // 글이 없을 경우 해당 게시판 목록으로 이동
    if (!$write['wr_id']) {
        $msg = '글이 존재하지 않습니다.\\n\\n글이 삭제되었거나 이동된 경우입니다.';
        alert($msg, './board.php?bo_table='.$bo_table);
    }
	
	if ($is_guest) {
		$msg = "비회원은 이 게시판에 접근할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.";
		alert($msg, './login.php?wr_id='.$wr_id.$qstr.'&url='.urlencode(G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.$qstr));
	}
 
}
 
$view = get_view($write, $board, $board_skin_path);
 
$mb_id = isset($_SESSION['ss_mb_id']) ? trim($_SESSION['ss_mb_id']) : '';
if(!$mb_id)
    alert('회원아이디 값이 없습니다. 올바른 방법으로 이용해 주십시오.');
 
 
//echo $view['wr_1'];echo "|"; 가격
//echo $view['wr_2'];echo "|"; 레벨
//echo $view['wr_3']; 수량
//echo $view['file'][0]['view'];
//echo $view['file'][0]['path'];
//echo $view['file'][0]['file'];
$iconfile = G5_DATA_PATH."/file/".$bo_table."/".$view['file'][0]['file'];
$iconsize = str_replace("byte", "", $view['file'][0]['size']);
 
//설정
$iconpoint_max = 10000;
$iconlevel_max = 2;
$iconamount_max = 1000;
 
//파일 존재 검사
if($view['file'][0]['file'] == "") {
    alert('아이콘 파일을 업로드 해주셔야 합니다.');
}
 
//숫자 여부 검사
if(!is_numeric($view['wr_1'])) {
    alert('가격에는 올바른 숫자를 입력해야 합니다.');
}
 
if($view['wr_1'] < 1) {
	alert('가격에는 0 이상의 숫자를 입력해야 합니다.');
}
 
if($view['wr_1'] > $iconpoint_max) {
	alert('가격에는 '.$iconpoint_max.' 이하의 숫자를 입력해야 합니다.');
}
 
if(!is_numeric($view['wr_2'])) {
    alert('레벨에는 올바른 숫자를 입력해야 합니다.');
}
 
if($view['wr_2'] < 2) {
	alert('레벨에는 1 이상의 숫자를 입력해야 합니다.');
}
 
if($view['wr_2'] > $iconlevel_max) {
	alert('레벨에는 '.$iconlevel_max.' 이하의 숫자를 입력해야 합니다.');
}
 
if(!is_numeric($view['wr_3'])) {
    alert('수량에는 올바른 숫자를 입력해야 합니다.');
}
 
if($view['wr_3'] > $iconamount_max) {
	alert('수량에는 '.$iconamount_max.' 이하의 숫자를 입력해야 합니다.');
}
 
//숫자 변수 사용
$iconpoint = $view['wr_1'] * (-1);
$iconlevel = $view['wr_2'];
$iconamount = $view['wr_3'];
 
// 레벨 검사
if ($member[mb_level] < $iconlevel) {
	alert("현재 레벨(".$member[mb_level].")이 부족해서 아이콘 구입(".$iconlevel.")이 불가합니다."); 
}
 
// 수량 검사
if ($iconamount < 1) {
	alert("현재 수량이 부족해서 아이콘 구입이 불가합니다."); 
}
 
// 포인트 검사
if ($member[mb_point] + $iconpoint < 0) {
	alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 아이콘 구입(".number_format($iconpoint).")이 불가합니다.\\n\\n포인트를 모으신 후 다시 구입해 주십시오."); 
}
 
// 수량 차감, 포인트 차감
if(get_session("iconbuy-".$bo_table."-".$wr_id) == true) {
	$msg_point = "포인트 소모 없이 변경했습니다.";
}
else if(get_session("iconbuy-".$bo_table."-".$wr_id) == false) {
	insert_point($mb_id, $iconpoint, "아이콘구입 - " . cut_str($write[wr_subject], 40), $bo_table, $wr_id, "아이콘구입 - ".G5_SERVER_TIME);
	$msg_point = "아이콘 구입으로 ".$iconpoint." 포인트를 소모했습니다.";
 
	// 세션 추가
	set_session("iconbuy-".$bo_table."-".$wr_id, true); 
	
	$iconamount = $iconamount - 1;
	$sql = " update {$write_table}
				set  wr_3 = '{$iconamount}'
			  where wr_id = '{$wr_id}' ";
	sql_query($sql);
}
 
// 아이콘 업로드
 
// 회원 아이콘
$mb_dir = G5_DATA_PATH.'/member/'.substr($mb_id,0,2);
 
// 아이콘 삭제
if (isset($_POST['del_mb_icon'])) {
    @unlink($mb_dir.'/'.$mb_id.'.gif');
}
 
$msg = "";
 
$mb_icon = '';
if(isset($iconfile)) {
    if (preg_match("/(\.gif)$/i", $view['file'][0]['file'])) {
        // 아이콘 용량이 설정값보다 이하만 업로드 가능
        if ($iconsize <= $config['cf_member_icon_size']) {
            @mkdir($mb_dir, G5_DIR_PERMISSION);
            @chmod($mb_dir, G5_DIR_PERMISSION);
            $dest_path = $mb_dir.'/'.$mb_id.'.gif';
            copy($iconfile, $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_member_icon_width'] || $size[1] > $config['cf_member_icon_height'])
                    @unlink($dest_path);
                //=================================================================\
            }
        } else {
            $msg .= '회원아이콘을 '.number_format($config['cf_member_icon_size']).'바이트 이하로 업로드 해주십시오.';
        }
 
    } else {
        $msg .= $iconfile.'은(는) gif 파일이 아닙니다.';
    }
}
 
alert("회원아이콘을 구매, 변경했습니다.\\n\\n".$msg_point."\\n\\n변경된 아이콘은 마이 페이지에서 확인할 수 있습니다.\\n\\n(서버 상태에 따라서 변경이 늦어질 수 있습니다.)");
 
 
?>

 

 

이 질문에 댓글 쓰기 :

답변 1

일단 아이콘파일의 용량과 관리자페이지 환경설정의 회원아이콘 용량을 확인해보시기 바랍니다.

 

아이콘파일 용량이 설정된 회원아이콘 용량보다 클 가능성이 있어 보입니다. 

아 사실 좀 큰 아이콘입니다. 자작아이콘, 그래서 인지 싶습니다. 되다 안되다가 하는거 보면 된다는 얘긴데 용량을 늘려서 한번 진행해봐야 겠습니다. 해결되면 멘트 남기겠습니다. 감사합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,677 | RSS
QA 내용 검색

회원로그인

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