T

어플과 php 통신

다음 소스는 제가 현재 사용중인 통신처리 내용 일부입니다.

[code]
<?php
/*
 * 설명: 매장 개설 처리부
 * 전달값: user_id, name, company_num, company_num_img, owner_name, addr, phone, bank_num_img, identify_img, sign_img, subject, content, store_pic[], level, user_type
 * 반환값: 
 */
include_once('_common.php');

# 템프 저장소 생성 및 퍼미션 변경
if(mkdir('./temp', 0707, true))
@chmod('./temp', 0707);

# 실제 저장소 생성 및 퍼미션 변경
if(mkdir(G5_DATA_PATH.'/app', 0707, true))
@chmod(G5_DATA_PATH.'/app', 0707);
if(mkdir(G5_DATA_PATH.'/app/store', 0707, true))
@chmod(G5_DATA_PATH.'/app/store', 0707);

# PATH 경로 잡음
$TempSavePath = './temp';
$SavePath = G5_DATA_PATH.'/app/store';

# 전달값 확인
if(!$_REQUEST['user_id']) die('회원정보 전달 값 없음');


# 데이터 복호화
$store_id    = TbDecrypt($_REQUEST['store_id']);
$user_id     = TbDecrypt($_REQUEST['user_id']);
$name        = TbDecrypt($_REQUEST['name']);
$company_num = TbDecrypt($_REQUEST['company_num']);
$owner_name  = TbDecrypt($_REQUEST['owner_name']);
$addr        = TbDecrypt($_REQUEST['addr']);
$phone       = TbDecrypt($_REQUEST['phone']);
$subject     = TbDecrypt($_REQUEST['subject']);
$content     = TbDecrypt($_REQUEST['content']);
$level       = TbDecrypt($_REQUEST['level']);
$user_type   = TbDecrypt($_REQUEST['user_type']);


# 상점 정보를 찾아본다.
//$StoreData = $tb->GetQuery(" select * from `{$xe['store_table']}` where `store_id` = '{$store_id}' ");

# 조건에 따른 sql 구조문 만듬
if($store_id) { // 매장이 있다면

$sql_head = " update `{$xe['store_table']}` set ";
$sql_body = "";
$sql_tail = "where `idx` = '{$store_id}' ";
}
else { // 매장이 없다면

$sql_head = " insert into `{$xe['store_table']}` set ";
$sql_body = " `user_id` = '{$user_id}', ";
$sql_tail = "";
}

# 이미지 작업 처리 작업
if($_REQUEST['company_num_img']) { // 사업자등록증 사본

$company_num_img_data = $tb->binary2images($TempSavePath, $SavePath, $store_id.'_company_num_img_'.time().'.jpg', $_REQUEST['company_num_img']);
if($company_num_img_data['name']) $sql_body .= " `company_num_img` = '".G5_URL."/app/store/{$company_num_img_data['name']}', ";
}
if($_REQUEST['bank_num_img']) { // 통장사본

$bank_num_img_data = $tb->binary2images($TempSavePath, $SavePath, $store_id.'_bank_num_img_'.time().'.jpg', $_REQUEST['bank_num_img']);
if($bank_num_img_data['name']) $sql_body .= " `bank_num_img` = '".G5_URL."/app/store/{$bank_num_img_data['name']}', ";
}
if($_REQUEST['identify_img']) { // 예금주 신분증 사본

$identify_img_data = $tb->binary2images($TempSavePath, $SavePath, $store_id.'_identify_img_'.time().'.jpg', $_REQUEST['identify_img']);
if($identify_img_data['name']) $sql_body .= " `identify_img` = '".G5_URL."/app/store/{$identify_img_data['name']}', ";
}
if($_REQUEST['sign_img']) { // 예금주 신분증 사본

$sign_img_data = $tb->binary2images($TempSavePath, $SavePath, $store_id.'_sign_img_'.time().'.jpg', $_REQUEST['sign_img']);
if($sign_img_data['name']) $sql_body .= " `sign_img` = '".G5_URL."/app/store/{$sign_img_data['name']}', ";
}
if($_REQUEST['store_pic'][0]) { // 매장사진

$StorePic = '';

for($i=0; $i<count($_REQUEST['store_pic']); $i++) {

if($_REQUEST['store_pic'][$i]) {

$store_picData = '';
$store_picData[$i] = $tb->binary2images($TempSavePath, $SavePath, $store_id.'_store_pic_'.$i.'_'.time().'.jpg', $_REQUEST['store_pic'][$i]);
$StorePic .= G5_URL."/app/store/{$store_picData[$i]['name']}\\r\\n";
}
}

if($StorePic) $sql_body .= " `store_pic` = '{$StorePic}', ";
}

# 업데이트 날짜 설정
$Diff = date('Y-m-d H:i:s');

$sql  = $sql_head;
$sql .= $sql_body;
$sql .= " `name` = '{$name}', ";
$sql .= " `company_num` = '{$company_num}', ";
$sql .= " `owner_name` = '{$owner_name}', ";
$sql .= " `addr` = '{$addr}', ";
$sql .= " `phone` = '{$phone}', ";
$sql .= " `subject` = '{$subject}', ";
$sql .= " `content` = '{$content}', ";
$sql .= " `level` = '{$level}', ";
$sql .= " `user_type` = '{$user_type}', ";
$sql .= " `diff` = '{$Diff}' ";
$sql .= $sql_tail;
sql_query($sql);


# 상점 정보를 다시 확인
$data = $tb->GetQuery(" select * from `{$xe['store_table']}` where `user_id` = '{$user_id}' ");


# 조건에 부합하는 출력 내용을 xml형태로 반환
echo '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL;
echo '<data>'.PHP_EOL;
echo $tb->array2xml3($Data);
echo '</data>'.PHP_EOL;
[/code]

동작도: 어플 요청->php에서 필수 값 확인-> 전달값 복호화-> 바이러니 이미지 처리-> 값에 따른 insert or update 구분 하여 sql문 만듬-> 요청 값 반환

중요한점: 어플 내부 DB에도 같은 DB를 저장하여 신규로 발생 하는 DB를 서버로 전송하여 처리 한다. db마다 존재하는 `diff time`을 비교하여 마지막 발생 시점과 현재 타임과 비교하여 사이 데이터를 모두 다운받는다.


여러분은 어떤식으로 처리 하시나요?

댓글 2개

syntax highlight code 적용해 놓았습니다.
감사합니다!! 센스쟁이!!

주제가 무겁나보네요 ㅎㅎ
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
16-06-11 조회 3,100
16-02-15 조회 3,329
16-02-02 조회 2,989
16-01-25 조회 2,608
16-01-18 조회 2,704
16-01-08 조회 2,628
16-01-07 조회 2,637
16-01-05 조회 2,672
16-01-05 조회 2,968
16-01-05 조회 2,943
16-01-05 조회 2,818
16-01-04 조회 2,681
16-01-04 조회 2,686
16-01-04 조회 2,636
16-01-04 조회 2,547
15-12-30 조회 2,911
15-12-24 조회 2,716
15-12-24 조회 2,712
15-12-24 조회 2,738
15-12-24 조회 2,696
15-12-23 조회 2,683
15-12-16 조회 2,777
15-12-15 조회 2,838
15-12-11 조회 2,968
15-12-10 조회 2,828
15-11-09 조회 2,805
15-11-09 조회 3,027
15-10-06 조회 3,360
15-10-02 조회 3,144
15-05-29 조회 4,471
15-02-02 조회 4,449
15-01-18 조회 4,441
14-10-25 조회 8,391
14-10-25 조회 5,175
14-10-22 조회 7,175
14-10-22 조회 4,878
14-10-22 조회 4,832
14-10-18 조회 5,703
14-10-17 조회 6,080
14-10-17 조회 5,458
14-10-17 조회 8,996
14-10-17 조회 6,475
14-10-13 조회 4,401
14-10-13 조회 4,500
14-10-07 조회 6,175
14-09-24 조회 3,945
14-09-23 조회 4,006
14-09-22 조회 4,923
14-09-22 조회 6,147
14-09-22 조회 4,111
14-09-22 조회 3,790
14-09-21 조회 4,419
14-09-21 조회 3,904
14-09-20 조회 3,900
14-09-20 조회 3,810
14-09-20 조회 3,985
14-09-19 조회 3,912
14-09-19 조회 4,070
14-09-19 조회 3,962
14-09-19 조회 4,328
14-09-19 조회 3,983
14-09-19 조회 3,915
14-09-19 조회 4,195
14-09-19 조회 3,933
14-09-19 조회 3,981
14-09-19 조회 3,959
14-09-18 조회 4,034
14-09-18 조회 3,993
14-09-18 조회 4,262
14-09-18 조회 4,234
14-09-18 조회 4,243
14-09-18 조회 4,940
14-09-18 조회 5,478
14-09-18 조회 5,368
14-09-18 조회 4,178
14-09-18 조회 4,675
14-09-18 조회 4,284
14-08-30 조회 5,546
14-08-06 조회 6,037
14-08-06 조회 5,648
14-08-03 조회 5,287
14-06-12 조회 5,563
14-05-11 조회 3,749
14-05-11 조회 4,509
14-05-11 조회 4,606
14-05-09 조회 1.3만
14-05-01 조회 5,211
14-03-30 조회 4,408
14-03-23 조회 8,038
14-02-12 조회 3,924
13-10-29 조회 7,873
13-10-28 조회 8,703
13-09-29 조회 6,668
13-09-29 조회 4,296
13-07-23 조회 5,174
13-07-23 조회 1.2만
13-07-14 조회 4,696
13-07-14 조회 5,086
13-07-14 조회 6,046
13-07-14 조회 5,328