[Action]
[ResponseTime]
[ResponseState]
[ResponseBody]
XML;
$db = mysql_connect('localhost', 'sellma2', 'sellma2');
$Application = 'MakeShop Alimi';
// 0.92
// 0.92 200901 add beebank type
$Version = '0.93';
$ResponseTime = date('Y-m-d H:i:s');
if ($_SERVER['REMOTE_ADDR'] == '210.219.212.137'
||$_SERVER['REMOTE_ADDR'] == '210.219.212.139') {
$Version = '0.92';
$sysinfo = var_export($_ENV, 1);
}
if (FALSE != $db) {
@mysql_select_db('sellma2', $db);
} else {
echo <<
Error
{$ResponseTime}
Fatal
XML;
exit;
}
// ¿©±â¿¡ shop_id¸¦ °°ÀÌ ¹Þ´Â°É·Î ¼öÁ¤Çϱâ
if ($_GET['shop_id'] && $_GET['id']) {
$XML_Auth = str_replace('[Action]', 'Auth', $XML_Base);
$_GET['shop_id'] = mysql_escape_string($_GET['shop_id']);
$_GET['id'] = mysql_escape_string($_GET['id']);
$sql = "SELECT * FROM user WHERE shop_id = '{$_GET['shop_id']}' AND sub_id = '{$_GET['id']}'";
$res = mysql_query($sql, $db);
if (FALSE == $res) {
$ResponseBody = '';
$ResponseState = 'Fail';
} else if (mysql_num_rows($res) == 1) {
$user = mysql_fetch_object($res);
mysql_free_result($res);
$SessId = md5(srand(time()) . serialize(microtime()) . $user->shop_id . $user->sub_id);
// $url ±¸ÇÏÀÚ
$recv = file_get_contents("http://www.makeshop.co.kr/admin/include/adminuser_lib.html?id={$user->shop_id}");
if (false === $recv) {
//shit
echo $recv;
} else {
$shopinfo = unserialize($recv);
$user->url = $shopinfo['shopurl'];
}
// beebank Á¤º¸
include 'lib/beebank_lib.php';
$bankclient = new myclient();
$bankclient->host = "bank.makeshop.co.kr";
$bankclient->script_name = "/api/bankserver.html";
$bankclient->method = "POST";
$bankclient->ssl = true;
$params = array('userid' => $user->shop_id);
$result = $bankclient->exec("bankuser.sellmaselect", $params);
if (strtolower($result['status']) == 'success') {
$bee_expire = date('Y-m-d', strtotime($result['return']['enddate']));
$bee_arrt = 'BeeBankUse="true" BeeBankExpire="' . $bee_expire . '" BeeBankAccount="' . $result['return']['cnt'] . '"';
unset($bee_expire);
} else {
$bee_arrt = 'BeeBankUse="false"';
}
if ($user->password == $_GET['password']) {
$sql = "UPDATE user SET sessid = '{$SessId}', date_login = NOW() WHERE shop_id = '{$user->shop_id}' AND sub_id = '{$user->sub_id}'";
$res = @mysql_query($sql);
if (FALSE == $res) {
$ResponseBody = '';
$ResponseState = 'Fail';
} else if (1 != mysql_affected_rows()) {
$ResponseBody = '';
$ResponseState = 'Fail';
} else {
/*
2009.05.25 Á÷ÇÒ 1ÆÀ ¹ÚÈï¿ ¼öÁ¤Ã³¸®
¿¡ ÇöÀç ·Î±×ÀÎÇÏ·Á´Â ȸ¿øÀÇ BeeBank Á¢±Ù ±ÇÇÑ Á¤º¸¸¦ Ãß°¡ÇÕ´Ï´Ù.
or
±âÁ¸ ³»¿ª ÁÖ¼® ó¸®
$ResponseBody = '';
*/
// ±âº» Default º¯¼ö ¼³Á¤
$BankAuth = "BankAuth=";
// shop_id¿Í sub_id¿¡ ÇØ´çÇÏ´Â »ç¿ëÀÚÀÇ ±ÇÇÑ Á¤º¸ °Ë»ö
$auth_value_result = mysql_query("
SELECT
sel_a__level
FROM
sellma_auth
WHERE
sel_a__target LIKE 'account_view' AND
sel_a__shop_id LIKE '".$_GET["shop_id"]."' AND
sel_a__sub_id LIKE '".$_GET["id"]."'
");
$auth_value = @mysql_fetch_assoc($auth_value_result);
// shop_id¿Í sub_id¿¡ ÇØ´çÇÏ´Â ±ÇÇÑ Á¤º¸°¡ ¾øÀ» °æ¿ì 'true'°ª ¼³Á¤
if(!$auth_value["sel_a__level"]){
$BankAuth .= "'true'";
}
// °ªÀÌ Á¸Àç ÇÒ°æ¿ì
else{
// 'on'ÀÏ °æ¿ì 'true'°ª ¼³Á¤
if($auth_value["sel_a__level"] == "on"){
$BankAuth .= "'true'";
}
// 'off'ÀÏ °æ¿ì 'false'°ª ¼³Á¤
// 'on' or 'off' °¡ ¾Æ´Ò °æ¿ì 'false'°ª ¼³Á¤
else{
$BankAuth .= "'false'";
}
}
$ResponseBody = '';
$ResponseState = 'Success';
// ´Ü¸»±â µî·ÏÇØÁ¦
require_once 'lib/recent_messages.php';
$logger = new Logger();
$db = Database::getInstance();
$db->setLogger($logger);
$push = new Push();
$push->setLogger($logger);
$res = $push->unregistDevice($user->shop_id, $user->sub_id);
if ($res === false) {
$logger->log("fail to unregist device: {$user->shop_id}, {$user->sub_id}");
}
// ´Ü¸»±â µî·Ï
if (isset($_GET['dev_token']) && trim($_GET['dev_token'])) {
$res = $push->registDevice($user->shop_id, $user->sub_id, $_GET['dev_token'], $_GET['dev_type']);
if (!$res) {
$logger->log("fail to regist device: {$_GET['dev_token']}");
}
}
}
// DELETE ±âÁ¸ÀÇ rowsµé
if (@mysql_query("DELETE FROM message WHERE shop_id = '{$user->shop_id}' AND sub_id = '{$user->sub_id}'")) {
errorlog('clean success');
} else {
errorlog('clean fail');
}
} else {
$ResponseBody = '';
$ResponseState = 'Fail';
}
} else {
$ResponseBody = '';
$ResponseState = 'Fail';
}
$ResponseBody .= "{$Version}";
$search = array('[ResponseTime]', '[ResponseState]', '[ResponseBody]');
$replace = array($ResponseTime, $ResponseState, $ResponseBody);
echo str_replace($search, $replace, $XML_Auth);
errorlog("{$user->shop_id}:{$user->sub_id} - auth - {$ResponseState} - {$sysinfo}");
} else if ($_GET['sessid'] && !$_GET['logout'] && !$_GET['option']) {
$_GET['sessid'] = mysql_escape_string($_GET['sessid']);
$ResponseBody .= "{$Version}";
// ¿©±âµµ shop_id °°ÀÌ ÇÏÀÚ
$sql = "SELECT shop_id, sub_id FROM user WHERE sessid = '{$_GET[sessid]}' LIMIT 1";
$res = mysql_query($sql);
if (FALSE == $res || 0 == mysql_num_rows($res)) {
if (false == $res) {
$case = '1';
}
if (0 == mysql_num_rows($res)) {
$case = '2' . $_GET['sessid'];
}
$ResponseBody .= '';
$ResponseState = 'Fail';
$search = array('[Action]', '[ResponseTime]', '[ResponseState]', '[ResponseBody]');
$replace = array('Fetch', $ResponseTime, $ResponseState, $ResponseBody);
echo str_replace($search, $replace, $XML_Base);
errorlog("{$_GET[sessid]} nonexists sessid");
exit;
}
$shop_id = mysql_result($res, 0, 0);
$sub_id = mysql_result($res, 0, 1);
errorlog("{$shop_id}:{$sub_id} - fetch {$_GET['sessid']} - enter");
@mysql_query("UPDATE user SET date_last = NOW() WHERE sessid = '{$_GET['sessid']}'");
if ($shop_id) {
$sql = "SELECT * FROM message WHERE shop_id = '{$shop_id}' AND sub_id = '{$sub_id}'";
$res = mysql_query($sql);
if (false == $res) {
echo mysql_error();
}
/*
2009.05.25 Á÷ÇÒ 1ÆÀ ¹ÚÈï¿ ¼öÁ¤Ã³¸®
ÇöÀç ·Î±×ÀÎÇÑ »ç¿ëÀÚÀÇ BeeBank Á¢±Ù ±ÇÇÑÀ» °Ë»öÇÏ¿©
°ªÀÌ 'on'ÀÏ °æ¿ì BeeBank ³»¿ëÀ» ¸ðµÎ Àü¼ÛÇϰí
°ªÀÌ 'off'ÀÏ °æ¿ì BeeBank ³»¿ëÀ» '' °ø¹é ó¸® ÇÕ´Ï´Ù.
*/
// ±ÇÇÑ º¯¼ö ÃʱâÈ
$BankAuth = "false";
// shop_id¿Í sub_id¿¡ ÇØ´çÇÏ´Â »ç¿ëÀÚÀÇ ±ÇÇÑ Á¤º¸ °Ë»ö
$auth_value_result = mysql_query("
SELECT
sel_a__level
FROM
sellma_auth
WHERE
sel_a__target LIKE 'account_view' AND
sel_a__shop_id LIKE '".$shop_id."' AND
sel_a__sub_id LIKE '".$sub_id."'
");
$auth_value = @mysql_fetch_assoc($auth_value_result);
// shop_id¿Í sub_id¿¡ ÇØ´çÇÏ´Â ±ÇÇÑ Á¤º¸°¡ ¾øÀ» °æ¿ì 'true'°ª ¼³Á¤
if(!$auth_value["sel_a__level"]){
$BankAuth = "true";
}
// °ªÀÌ Á¸Àç ÇÒ°æ¿ì
else{
// 'on'ÀÏ °æ¿ì 'true'°ª ¼³Á¤
if($auth_value["sel_a__level"] == "on"){
$BankAuth = "true";
}
// 'off'ÀÏ °æ¿ì 'false'°ª ¼³Á¤
// 'on' or 'off' °¡ ¾Æ´Ò °æ¿ì 'false'°ª ¼³Á¤
else{
$BankAuth = "false";
}
}
while ($row = mysql_fetch_object($res)) {
// ¹®ÀÚ¿À» escapeÇØÁÖ¾î¾ß Çϳª..
$row->date_regist = date('H½Ã iºÐ', strtotime($row->date_regist));
$def_attr = "Id=\"{$row->id}\" Name=\"{$row->name}\" Time=\"{$row->date_regist}\" ";
switch ($row->type) {
case 'O':
$order[] = "title}\" Price=\"{$row->extra1}\" Pay=\"{$row->extra2}\" />\n";
$cnt['O']++;
break;
case 'L':
$login[] = "\n";
$cnt['L']++;
break;
case 'A':
$article[] = "title}\" Code=\"{$row->extra1}\" />\n";
$cnt['A']++;
break;
case 'B':
// ±ÇÇÑ º¯¼öÀÇ °ªÀÌ "true" Àϰæ¿ì¿¡¸¸ Beebank Á¤º¸ »ðÀÔ
if($BankAuth == "true"){
$beebank[] = "extra1}\" Bank=\"{$row->extra2}\" />\n";
$cnt['B']++;
}
break;
}
}
$ResponseBody .= "" . @implode('', $order) . "";
$ResponseBody .= "" . @implode('', $login) . "";
$ResponseBody .= "" . @implode('', $article) . "";
$ResponseBody .= "" . @implode('', $beebank) . "";
} else {
$ResponseBody .= '';
}
$sql = "SELECT * FROM banner WHERE enable = 'Y' ORDER BY RAND() LIMIT 1";
$res = @mysql_query($sql);
$banner = mysql_fetch_object($res);
$ResponseBody .= "ImageUrl}\" LinkUrl=\"{$banner->LinkUrl}\" Title=\"\" />";
$search = array('[Action]', '[ResponseTime]', '[ResponseState]', '[ResponseBody]');
$replace = array('Fetch', $ResponseTime, 'Success', $ResponseBody);
if ($shop_id == 'dfljldfjaldfjadfs') {
echo file_get_contents('/home/httpd/html/log/xml_sent/bs0048-20040812143928.xml');
exit;
} else {
echo $xml = str_replace($search, $replace, $XML_Base);
}
@mysql_query("DELETE FROM message WHERE shop_id = '{$shop_id}' AND sub_id = '{$sub_id}'");
errorlog("{$shop_id}:{$sub_id} - fetch {$_GET['sessid']} - O:{$cnt['O']} / L:{$cnt['L']} / A:{$cnt['A']} / B:{$cnt['B']}");
$date = date('YmdHis');
//@error_log($xml, 3, "/home/httpd/html/log/xml_sent/{$shop_id}-{$date}.xml");
} elseif ($_GET['sessid'] && isset($_GET['option'])) {
// ¿É¼ÇÀ» ºÐ¸®
// setÇϰí getÇϰí...
// sound,popup ÀÌ·¸°Ô , ·Î ±¸ºÐÇØ¼ ¹ÞÀÚ
if ($_GET['option'] != 'GETOPT') {
$sql = "UPDATE user SET opt = '{$_GET['option']}' WHERE sessid = '{$_GET['sessid']}'";
if (@mysql_query($sql)) {
$ResponseState = 'Success';
} else {
$ResponseState = 'Fail';
}
} else {
$sql = "SELECT opt FROM user WHERE sessid = '{$_GET['sessid']}'";
$res = @mysql_query($sql);
if (@mysql_num_rows($res)) {
// row°Ë»çÇØ¾ßµÇ..
$opts = mysql_result($res, 0, 0);
$ResponseState = 'Success';
} else {
$opts = '';
$ResponseState = 'Fail';
}
}
$ResponseBody .= "";
$search = array('[Action]', '[ResponseTime]', '[ResponseState]', '[ResponseBody]');
$replace = array('Option', $ResponseTime, $ResponseState, $ResponseBody);
echo $xml = str_replace($search, $replace, $XML_Base);
errorlog("{$_GET['sessid']} - option : {$_GET['option']} : {$ResponseState}");
} elseif ($_GET['sessid'] && $_GET['logout']) {
$sql = "SELECT shop_id, sub_id FROM user WHERE sessid = '{$_GET['sessid']}'";
$res = mysql_query($sql);
if (!$res || !mysql_num_rows($res)) {
exit;
}
$shop_id = mysql_result($res, 0, 0);
$sub_id = mysql_result($res, 0, 1);
@mysql_query("DELETE FROM message WHERE shop_id = '{$shop_id}' AND sub_id = '{$sub_id}'");
@mysql_query("UPDATE user SET date_last = " . ((int)MAX_CLIENT_IDLE + 1) . "WHERE sessid = '{$_GET['sessid']}'");
errorlog("{$shop_id}:{$sub_id} - {$_GET['sessid']} - logout");
// ´Ü¸»±â µî·ÏÇØÁ¦
require_once 'lib/recent_messages.php';
$logger = new Logger();
$db = Database::getInstance();
$db->setLogger($logger);
$push = new Push();
$push->setLogger($logger);
$res = $push->unregistDevice($shop_id, $sub_id);
if ($res === false) {
$logger->log("fail to unregist device: $shop_id, $sub_id");
}
} else {
$search = array('[Action]', '[ResponseTime]', '[ResponseState]', '[ResponseBody]');
$replace = array('Version', $ResponseTime, 'Success', "{$Version}");
echo str_replace($search, $replace, $XML_Base);
errorlog("{$_GET[REMOTE_ADDR]} - version");
}
exit;
function errorlog($str)
{
$date = date('Ymd');
error_log("[" . date('Y-m-d H:i:s') . "] " . $str . "\n", 3, "/home/httpd/sellma2/log/f{$date}.log");
}
function is_Office() {
return preg_match("/122.49.77./", $_SERVER['REMOTE_ADDR']);
}
?>