Files
core/i_entrance/manage/iconPost.php
T
Hide_D 0c9be5c53f 루트DB를 관리하는 방식을 통째로 변경
- DB 불러오는 방식을 기존의 set.php에서 conf.php의 getRootDB()를 이용하도록 변경
- ADODB 에 기반한 _DB 클래스 폐기
- DBS.php 폐기
- _Setting 클래스 용도 변경
- 서버 목록 정의 방식을 하나로 모음
- 로그인시 세션에 사용자 등급을 추가
- "참여"(donation) 관련 코드 전면 제거
- 서버 리셋시 부운영자 비밀번호 문제 수정
- 서버 오픈,닫힘 여부를 새 서버 목록 정의 방식에 따르도록 수정
- DBS.php가 폐기 되었으므로 서버 오픈시 기본 정보를 json으로 받아오도록 하기 위하여 기본 준비
-  기존에 남아있던 세부 서버 로그인 처리 파일을 제거(enterPost.php)
- DBS.php 삭제로 전콘 변경시에도 각 서버로 json 호출을 하도록 하는 방식으로 준비
- 전콘을 수동으로 서버에 올린뒤 처리할 수 있도록 하던 legacy 코드 제거
- general 테이블에서 userlevel 컬럼을 삭제하고, 세션에 기록된 userGrade를 이용하도록 변경
- 벌점 제한을 모든 유저 공통으로 하도록 수정
- 세부 서버 리셋을 json ajax로 처리하도록 준비
2018-03-07 00:59:31 +09:00

103 lines
2.8 KiB
PHP

<?php
require_once('_common.php');
require_once(ROOT.W.F_CONFIG.W.DB.PHP);
require_once(ROOT.W.F_CONFIG.W.SESSION.PHP);
// 외부 파라미터
// $_FILES['picture'] : 사진파일
$defaultImg = 'default.jpg';
$image = $_FILES['picture'];
$ext = strrchr($image['name'], ".");
$size = getImageSize($image['tmp_name']);
$imageType = $size[2];
$availableImageType = array('.jpg'=>IMAGETYPE_JPEG, '.png'=>IMAGETYPE_PNG, '.gif'=>IMAGETYPE_GIF);
$db = getRootDB();
$member = $db->queryFirstRow('SELECT `ID`, `PICTURE` FROM `MEMBER` WHERE `NO` = %i', $SESSION->NoMember());
$picName = $member['PICTURE'];
$newExt = array_search($imageType, $availableImageType, true);
if($picName && strlen($picName) > 11){
$dt = substr($picName, -8);
$picName = substr($picName, 0, -10);
}
else{
$dt = '00000000';
}
$old_path = ROOT.W.D."pic/{$picName}";
$rf = date('Ymd');
$response['result'] = 'FAIL';
$response['msg'] = '요청이 올바르지 않습니다!';
if(!is_uploaded_file($image['tmp_name'])) {
//진짜 전송된 파일인지 검증
$response['msg'] = '업로드가 되지 않았습니다!';
$response['result'] = 'FAIL';
} elseif(!$newExt) {
//확장자 검사
$response['msg'] = 'jpg, gif, png 파일이 아닙니다!';
$response['result'] = 'FAIL';
} elseif($image['size'] > 10000) {
//파일크기 검사
$response['msg'] = '10kb 이하로 올려주세요!';
$response['result'] = 'FAIL';
} elseif($size[0] != 64 || $size[1] != 64) {
//이미지크기 검사
$response['msg'] = '64x64 크기로 올려주세요!';
$response['result'] = 'FAIL';
} elseif($dt == $rf) {
//갱신날짜 검사
$response['msg'] = '1일 1회 변경 가능합니다!';
$response['result'] = 'FAIL';
} else {
//이미지 저장
while(true){
$newPicName = dechex(rand(0x000000f,0xfffffff)).$newExt;
$dest = ROOT.W.D."pic/{$newPicName}";
if(file_exists($dest)){
continue;
}
break;
}
if(!move_uploaded_file($image['tmp_name'], $dest)) {
$response['msg'] = '업로드에 실패했습니다!';
$response['result'] = 'FAIL';
} else {
$pic = "{$newPicName}?={$rf}";
getRootDB()->update('MEMBER',[
'PICTURE' => $pic,
'IMGSVR' => 1
], 'NO=%i', $SESSION->NoMember());
//TODO: 각 서버에도 전파
//Update('general', "PICTURE='{$pic}', IMGSVR=1", "NPC=0 AND USER_ID='{$member['ID']}'");
$response['msg'] = '업로드에 성공했습니다!';
$response['result'] = 'SUCCESS';
}
}
sleep(1);
/*
echo "<script type='text/javascript'>
alert('{$response['msg']}');
location.replace('".ROOT.W.I.ENTRANCE.W.ENTRANCE.PHP."');
</script>";
*/
echo ROOT.W.I.ENTRANCE.W.ENTRANCE.PHP;//TODO:debug all and replace