회원아이콘 파일 업데이트 경로 한번 봐주십시오.
본문
사용하고자 하는 G5용 아이콘샵 게시판스킨입니다.
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(서버 상태에 따라서 변경이 늦어질 수 있습니다.)");
?>
!-->
답변을 작성하시기 전에 로그인 해주세요.