사용하고자 하는 G5용 아이콘샵 게시판스킨입니다.
G5에는 다행히 이 스킨이 있어서 사용해봤습니다.
저작자님이 시험삼아 하셨다는데 되긴 하더라구요.
아이콘샵은 구매시 해당회원의 아이디 앞두글자를 떼내서
/data/member 폴더에 생성이 되고 고른 아이콘이 저장되는 방식입니다.
admin이면 /data/member/ad/admin.gif
test면 /data/member/te/test.gif
이런식이더라구요. (앞두글자가 같을 경우도 있을것 같은데 왜 굳이 아이디로 하지 않았는지 궁금하고)
좌우지간 설치후 첨엔 되는데
변경하면 정확히 말하면 되다가 안됩니다.
서버처리시간문젠가 싶어서 기다려도 보고 캐시제거 새로고침도 해보고 했는데
되다 안되다 그러는데 그러다가 쭉 안됩니다.
확인을 해봤더니...
최종 클릭 구매한 아이콘명으로 관리자에서 포인트구매내역에 찍히는데 포인트쪽은 이상이 없는것 같은데 말이죠.
data 폴더에 확인해보면 실제 아이콘 이미지는 다른것이 여전히 변경전 아이콘이 남아 있는 문제가 있습니다.
즉 덮어씌워지지 않는것 같았습니다.
아무래도 경로 문제 같기도 하구요.
제가 까막눈이라... 다시한번 올려봅니다.
고수님들께서 한번 봐주시면 감사하겠습니다.
아래 부분들이 처리하는 곳인것 같습니다.
/bbs/iconbuy_update.php
<?phpinclude_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개 / 댓글 1개
일단 아이콘파일의 용량과 관리자페이지 환경설정의 회원아이콘 용량을 확인해보시기 바랍니다.
아이콘파일 용량이 설정된 회원아이콘 용량보다 클 가능성이 있어 보입니다.
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.