/var/www/doncode.com.ua/www/obmen/include
NameSizeModeActions
jpgraph/-0775rm
config.php6870644editdlrm
doncode_multi_cURL.class.php81990644editdlrm
footer.php400644editdlrm
func.php191270644editdlrm
func_mysql.php49810644editdlrm
func_pars.php3770644editdlrm
header.php6610644editdlrm
smsclub.com.ua.class.php62520644editdlrm
Edit: /var/www/doncode.com.ua/www/obmen/include/func.php (19127B)
Login'; exit(101); } } function distance($lat1, $lon1, $lat2, $lon2, $unit="K") { $theta = $lon1 - $lon2; $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)); $dist = acos($dist); $dist = rad2deg($dist); $miles = $dist * 60 * 1.1515; $unit = strtoupper($unit); if ($unit == "K") { return ($miles * 1.609344); } else if ($unit == "N") { return ($miles * 0.8684); } else { return $miles; } } function obmenlog($msg){ $fp = fopen("/var/log/dcc/obmen/obmen_".$_SESSION['fromgid'].".log", "a+"); if($fp){fwrite($fp, "[".date("H:i:s")."] $msg\r\n");} fclose($fp); } function getDCC($gid){ if($gid==0){ $dcc['taxi_name']='Биржа заказов'; return $dcc; } $dcc = db_fetch(db_query("SELECT d.id,d.gid,d.city_id,d.key,d.obmen,d.internet,d.taxi_name,d.ip,d.host,d.port,d.last_update,d.ver,d.create_time,d.pay_type,d.today_call,d.sum_call,c.city_name_ru FROM `dcc` d INNER JOIN city_ c WHERE d.`gid`='$gid' AND d.deleted=0 LIMIT 1")); // $dcc = db_fetch(db_query("SELECT d.id,d.gid,d.city_id,d.key,d.obmen,d.internet,d.taxi_name,d.ip,d.host,d.port,d.last_update,d.ver,d.create_time,d.pay_type,d.today_call,d.sum_call,c.city_name_ru FROM `dcc` d INNER JOIN city_ c WHERE d.city_id=c.id_city AND d.`gid`='$gid' AND d.deleted=0 LIMIT 1")); return $dcc[0]; } function emptytime($time){ if($time==0){ return '';}else{return $time;} } function set_order_status($gid, $order_id, $status){ global $json, $conf, $mcurl; log_order($gid, $order_id, $status); db_query("UPDATE `orders` SET `status`='$status' WHERE `id`='$order_id' $where"); if(db_affected_rows()>0){ obmenlog("Set status($status) order($order_id) gid($gid)"); return true; } obmenlog("Error set status($status) order($order_id) gid($gid)"); return false; } function send_json($cmd, $jsonarray, $a = 0, $only_for_a = false, $only_not = false) { global $json, $conf, $mcurl; //$_SESSION['fromgid'] = $a; $tsql0 = microtime(true); obmenlog("CORE# JSON SEND START CMD: $cmd FROM GID: $a STATUS: ".$jsonarray['status_id']); $sended = false; // $jsonarray['a'] = $a; if ($a > 0) { // Достаём список друзей a != 0 $result = db_query("SELECT d.gid,d.city_id,d.host,d.port,d.key,d.taxi_name FROM `dcc` d LEFT OUTER JOIN `obmen_friends` o ON ( d.gid = o.a OR d.gid = o.b) WHERE ( o.a=$a OR o.b=$a) AND o.accepted=1 AND d.obmen=1 AND d.`deleted`='0' GROUP BY `gid`"); $hosts = db_fetch($result); if(is_array($hosts)){ foreach($hosts as $key => $value){ if($only_for_a && $a!=$value['gid']){obmenlog("CORE# KEEP GID: ".$value['gid']." MSG FOR GID: ".$a);continue;} if($only_not==$value['gid']){obmenlog("CORE# SKEEP GID: ".$value['gid']);continue;} if($value['gid']>10000){obmenlog("CORE# SKEEP GID > 10000: ".$value['gid']);continue;} if($value['port']==0){$value['port']=80;} $url = 'http://' . $value['host'] . ':' . $value['port'] . '/core_obmenapi.php'; $key = $value['key']; $json = urlencode(json_encode($jsonarray)); $u = $url . "?cmd=" . $cmd . "&key=" . md5($key) . "&gid=" . $a . "&jsn=" . $json; obmenlog("CORE# FOR ".$value['taxi_name']." GID:".$value['gid'].", CITY_ID=".$value['city_id'].", cmd=$cmd, key=$key, obmen_id=".$jsonarray['obmen_id']." host={$value['host']}:{$value['port']}"); $mcurl->addUrl($u); $sended = true; } }else{ set_order_status(0,$jsonarray['obmen_id'],ST_NO_DCC_ONLINE); } } elseif($jsonarray['city_id']>0) { $city_id = $jsonarray['city_id']; // Достаём список служб по городу a == 0 && city_id != 0 $result = db_query("SELECT `gid`,`host`,`port`,`key` FROM `dcc` WHERE `city_id`='$city_id' AND `obmen`='1' AND `deleted`='0' AND `internet`='1'"); $hosts = db_fetch($result); if(is_array($hosts)){ foreach($hosts as $key => $value){ if($value['port']==0){$value['port']=80;} $url = 'http://' . $value['host'] . ':' . $value['port'] . '/core_obmenapi.php'; $key = $value['key']; $json = urlencode(json_encode($jsonarray)); $u = $url . "?cmd=" . $cmd . "&key=" . md5($key) . "&gid=" . $a . "&jsn=" . $json; obmenlog("---- SERV TO CITY=$city_id TX a=$a -> b=".$value['gid'].", cmd=$cmd, obmen_id=".$jsonarray['obmen_id']." host={$value['host']}:{$value['port']}"); $mcurl->addUrl($u); $sended = true; } if($sended){ if($jsonarray['status']==1){ set_order_status(0,$jsonarray['obmen_id'],ST_ORDER_SEND_TO_CITY); } } }else{ set_order_status(0,$jsonarray['obmen_id'],ST_NO_CITY_ONLINE); } } else { obmenlog("!--- SERV BREAK! GID and CITY_ID empty! cmd=$cmd key=$key JsonIN=".var_export($jsonarray,true)); } $tsql1 = microtime(true); $tsql = substr($tsql1 - $tsql0,0,6); obmenlog("CORE# JSON SEND END ".$tsql."ms"); return $sended; } function json_encode_cyr($arr) { $trans = array( '\u0410'=>'А', '\u0411'=>'Б', '\u0412'=>'В', '\u0413'=>'Г', '\u0414'=>'Д', '\u0415'=>'Е', '\u0401'=>'Ё', '\u0416'=>'Ж', '\u0417'=>'З', '\u0418'=>'И', '\u0419'=>'Й', '\u041a'=>'К', '\u041b'=>'Л', '\u041c'=>'М', '\u041d'=>'Н', '\u041e'=>'О', '\u041f'=>'П', '\u0420'=>'Р', '\u0421'=>'С', '\u0422'=>'Т', '\u0423'=>'У', '\u0424'=>'Ф', '\u0425'=>'Х', '\u0426'=>'Ц', '\u0427'=>'Ч', '\u0428'=>'Ш', '\u0429'=>'Щ', '\u042a'=>'Ъ', '\u042b'=>'Ы', '\u042c'=>'Ь', '\u042d'=>'Э', '\u042e'=>'Ю', '\u042f'=>'Я', '\u0430'=>'а', '\u0431'=>'б', '\u0432'=>'в', '\u0433'=>'г', '\u0434'=>'д', '\u0435'=>'е', '\u0451'=>'ё', '\u0436'=>'ж', '\u0437'=>'з', '\u0438'=>'и', '\u0439'=>'й', '\u043a'=>'к', '\u043b'=>'л', '\u043c'=>'м', '\u043d'=>'н', '\u043e'=>'о', '\u043f'=>'п', '\u0440'=>'р', '\u0441'=>'с', '\u0442'=>'т', '\u0443'=>'у', '\u0444'=>'ф', '\u0445'=>'х', '\u0446'=>'ц', '\u0447'=>'ч', '\u0448'=>'ш', '\u0449'=>'щ', '\u044a'=>'ъ', '\u044b'=>'ы', '\u044c'=>'ь', '\u044d'=>'э', '\u044e'=>'ю', '\u044f'=>'я'); return strtr(json_encode($arr),$trans); } function cartype_to_text($status) { switch ($status) { case 0: return "Любая"; break; case 1: return "Эконом"; break; case 2: return "Обычный"; break; case 3: return "VIP"; break; case 4: return "Микроавтобус"; break; case 5: return "Грузовая"; break; } } function status_to_text($status) { switch ($status) { case 1: return "Заказ создан"; break; case 2: return "Заказ отправлен"; break; case 3: return "Заказ принят, автомобиль в пути"; break; case 4: return "Автомобиль задерживается"; break; case 5: return "Автомобиль подъехал"; break; case 6: return "Заказчик не вышел"; break; case 7: return "Заказчик в автомобиле"; break; case 8: return "Заказ выполнен"; break; case 9: return "Заказ отменил заказчик"; break; case 10: return "Заказ отменила биржа"; break; case 11: return "Время вышло. Автомобиль не найден"; break; case 12: return "Нет серверов обмена"; break; case 13: return "Заказ отменил диспетчер"; break; case 14: return "Заказ отправлен в DCC"; break; case 15: return "Заказ не отправлен в DCC"; break; case 16: return "Поиск автомобиля..."; break; case 17: return "Заказ не принят в DCC"; break; case 18: return "Заказ удален из DCC"; break; case 19: return "Заказ не удален из DCC"; break; case 20: return "Заказ отменен"; break; case 21: return "Попытка повторно удалить заказ"; break; case 22: return "Попытка удалить не существующий заказ"; break; case 23: return "Заказ принят диспетчером"; break; case 24: return "Заказ принят с мобильного"; break; case 25: return "Нет города в обмене"; break; case 26: return "Заказ доставлен в диспетчерскую"; break; case 27: return "Заказ отменил отправитель"; break; case 28: return "Заказ отменил получатель"; break; case 29: return "Поиск другого автомобиля"; break; case 30: return "Смена ID заказа"; break; case 31: return "Отмена заказа автоматически"; break; default: return "Нет статуса"; break; } } function log_order($gid, $order_id, $status, $statustext='') { global $jsonout; db_query("INSERT INTO `orders_log` SET `gid`='" . $gid . "', `order_id`='" . $order_id . "', `status`='" . $status . "', `statustext`='" . $statustext . "'"); $jsonout['status'] = $status; $jsonout['info'] = status_to_text($status); } //NOTICE:ALEX:1:Загрузка конфига в массив function read_conf(&$arg) { $resconf = db_query("SELECT * FROM `config`"); for ($i = db_num_rows($resconf); $i > 0; $i--) { $conf1 = db_fetch_assoc_one($resconf); $arg[$conf1['key']] = $conf1['value']; } } read_conf($conf); function write_key($key, $value) { $value = mysql_filtr($value); if (!preg_match("|^[a-z_0-9]+$|", $key)) { return false; } $result = db_query("SELECT count(*) FROM `config` WHERE `key`='" . $key . "'"); $keycount = db_fetch($result); if ($keycount[0][0] > 0) { db_query("UPDATE `config` SET `value`='" . $value . "' WHERE `key`='" . $key . "'"); return 1; } else { db_query("INSERT INTO `config` SET `key`='" . $key . "', `value`='" . $value . "'"); return 2; } } function Sec2Time($time) { if (is_numeric($time)) { $value = array( "y" => "0", "d" => "0", "h" => "0", "m" => "0", "s" => "0", ); if ($time >= 31556926) { $value["y"] = floor($time / 31556926); $time = ($time % 31556926); } if ($time >= 86400) { $value["d"] = floor($time / 86400); $time = ($time % 86400); } if ($time >= 3600) { $value["h"] = floor($time / 3600); $time = ($time % 3600); } if ($time >= 60) { $value["m"] = floor($time / 60); $time = ($time % 60); } $value["s"] = floor($time); return (array) $value; } else { return (bool) FALSE; } } function check_php($filename) { if (!is_file($filename)) { return false; } if (@eval('return true;?>' . file_get_contents($filename)) === true) { return true; } return false; } function send_sms($p, $textsms, $flag, $type=1) { global $conf; // db_query("INSERT INTO `sms_log` SET `phone`='$p', `text`='$textsms'"); $phone = trim($p); $phlen = strlen($phone); if (substr($phone, 0, 1) == '+') { $phone = substr($phone, 1); } else { if ($phlen == 10) { $phone = '38' . $phone; } elseif ($phlen == 11) { $phone = '3' . $phone; } } if (!preg_match("|^380\d{9}$|", $phone)) { return false; } if ($conf['sms_service'] == '2') { //'usbmodem' $str = "To: $phone\r\n"; if ($type == '0' or $type == '80') { $str .= "Alphabet: ISO\r\n"; $text = iconv("windows-1251", "ISO-8859-1//TRANSLIT", $textsms); } else { $str .= "Alphabet: Unicode\r\n"; $text = iconv("windows-1251", "UCS-2BE", $textsms); } if ($type == '80' or $type == '81') { $str .= "Flash: true\r\n"; } $str .= "\r\n"; $str .= $text; //echo $str; $filename = "/var/spool/sms/outgoing/" . date("ymdHis") . $phone; if (file_put_contents($filename, $str)) { db_query("INSERT INTO `sms_log` SET `phone`='$phone', `text`='$text'"); return true; } return false; } elseif ($conf['sms_service'] == '1') { //'SQL_turbosms.com.ua' // $conf['sms']['service'] = 'SQL_turbosms.com.ua'; // $conf['sms']['host'] = '77.120.116.10'; // $conf['sms']['user'] = ''; // $conf['sms']['pass'] = ''; // $conf['sms']['base'] = ''; // $conf['sms']['table'] = ''; // $conf['sms']['sign'] = 'TaxiVsegda'; //отключились от основной базы $text = iconv("utf-8", "windows-1251", $textsms); db_query("INSERT INTO `sms_log` SET `phone`='$phone', `text`='$text'"); $text = $textsms; mysqli_close($fp_db); $db_sms = mysqli_connect($conf['sms_host'], $conf['sms_user'], $conf['sms_pass'], $conf['sms_base']); if (mysqli_connect_errno()) { echo 'не удалось подключиться к БД'; return false; } // mysqli_query($db_sms, "SET NAMES 'UTF-8'"); // if(mysqli_errno($db_sms) != 0){echo 'не удалось установить кодировку соединения БД'; return false;} mysqli_query($db_sms, "SET NAMES utf8;"); mysqli_query($db_sms, "INSERT into {$conf['sms_table']} SET `number`='$phone', `sign`='{$conf['sms_sign']}', `message`='$text'"); if (mysqli_errno($db_sms) != 0) { echo 'не удалось произвести INSERT БД'; return false; } //отключились от sms базы mysqli_close($db_sms); //и опять подключились к основной базе db_connet(); return true; } elseif ($conf['sms_service'] == '3') { //'smsclub.com.ua' if (!file_exists(dirname(__FILE__) . '/smsclub.com.ua.class.php')) { echo 'Не возможно подключить ' . dirname(__FILE__) . 'smsclub.com.ua.class.php'; return false; } require_once(dirname(__FILE__) . '/smsclub.com.ua.class.php'); $sms = new SMSclient($conf['sms_user'], $conf['sms_pass']); // $text = iconv("utf-8", "windows-1251", $textsms); $text = $textsms; //транслит if ($type == '0' or $type == '80') { //$text = SMSclient::translit($text); } //flash if ($type == '80' or $type == '81') { $text = SMSclient::translit($text); $id = $sms->sendSMS($conf['sms_sign'], $phone, $text, 0, '', 1); } elseif ($type == '0') { //$text = SMSclient::translit($text); $id = $sms->sendSMS($conf['sms_sign'], $phone, $text); //обычное транслит } else { $id = $sms->sendSMS($conf['sms_sign'], $phone, $text); //обычное } if ($sms->hasErrors()) { echo(var_dump($sms->getErrors())); return false; } else { //var_dump($id); $text = iconv("utf-8", "windows-1251", $text); db_query("INSERT INTO `sms_log` SET `phone`='$phone', `text`='$text'"); return true; } } else { echo 'Не выбран тип сервиса через который будет отправлена смс'; return false; } return false; } ?>