Beispiel #1
0
<?php

// Пример работы с классом SxGeo v2.2
header('Content-type: text/plain; charset=utf8');
// Подключаем SxGeo.php класс
include "SxGeo.php";
// Создаем объект
// Первый параметр - имя файла с базой (используется оригинальная бинарная база SxGeo.dat)
// Второй параметр - режим работы:
//     SXGEO_FILE   (работа с файлом базы, режим по умолчанию);
//     SXGEO_BATCH (пакетная обработка, увеличивает скорость при обработке множества IP за раз)
//     SXGEO_MEMORY (кэширование БД в памяти, еще увеличивает скорость пакетной обработки, но требует больше памяти)
$SxGeo = new SxGeo('SxGeoCity.dat');
//$SxGeo = new SxGeo('SxGeoCity.dat', SXGEO_BATCH | SXGEO_MEMORY); // Самый производительный режим, если нужно обработать много IP за раз
$ip = $_SERVER['REMOTE_ADDR'];
//var_export($SxGeo->getCityFull($ip)); // Вся информация о городе
var_export($SxGeo->get($ip));
// Краткая информация о городе или код страны (если используется база SxGeo Country)
//var_export($SxGeo->about());          // Информация о базе данных
<?php

$cookie = json_decode($_POST['json']);
define('__ROOT__', $_SERVER['DOCUMENT_ROOT']);
require_once __ROOT__ . '/medoo.min.php';
require_once __ROOT__ . '/config.php';
$database = new medoo(array('database_type' => $config_db['database_type'], 'database_name' => $config_db['database_name'], 'server_name' => $config_db['server_name'], 'username' => $config_db['username'], 'password' => $config_db['password'], 'charset' => $config_db['charset']));
$arr = array();
foreach ($cookie as $val) {
    $arr[] = $database->select("catalog", array("[>]catecory" => array('category' => 'id')), array('catalog.id', 'catalog.name', 'catalog.chpu', 'catalog.price', 'catecory.chpu(cat_chpu)', 'catalog.image', 'catalog.local_price'), array("catalog.id" => $val->id));
}
//print_r($arr);
//делаем скидку для локалей
require_once __ROOT__ . '/location/SxGeo.php';
$SxGeo = new SxGeo(__ROOT__ . '/location/SxGeo.dat');
$ip = $_SERVER['REMOTE_ADDR'];
$city = $SxGeo->get($ip);
$datas_disc = $database->select("location_discount", '*', array('city' => $city['city']['name_en']));
if (count($datas) == 0) {
    $datas_disc = $database->select("location_discount", '*', array('city' => 'Other'));
}
//учтем скидку вы цене товара
foreach ($arr as &$val) {
    if ($val[0]['local_price'] == 1) {
        $val[0]['price'] = $val[0]['price'] - $datas_disc[0]['discount'] * $val[0]['price'] / 100;
    }
}
//print_r($datas_disc);
//print_r($arr);
$res = json_encode($arr);
echo $res;
Beispiel #3
0
 /**
  * @param string $ip
  *
  * @return array|bool|mixed
  */
 public function get($ip = '')
 {
     return $this->sxGeo->get($this->getIp($ip));
 }
Beispiel #4
0
}
include_once dirname(__FILE__) . '/../api.lib/SxGeo.php';
$SxGeo = new SxGeo(dirname(__FILE__) . '/../api.lib/SxGeoCity.dat', SXGEO_BATCH | SXGEO_MEMORY);
$userid = intval($userid);
$query = 'SELECT id, ip, country, city, browser, date_sign_in FROM users_ips WHERE userid = ? ORDER BY id DESC LIMIT 0,25';
try {
    $stmt = $conn->prepare($query);
    $stmt->execute(array(intval($userid)));
    while ($row = $stmt->fetch()) {
        $country = $row['country'];
        $city = $row['city'];
        $id = $row['id'];
        $ip = $row['ip'];
        $browser = $row['browser'];
        if (strlen($country) == 0 && strlen($city) == 0) {
            $o = $SxGeo->get($ip);
            if ($o) {
                $country = $o['country'];
                $city = $o['city'];
                $stmt2 = $conn->prepare('UPDATE users_ips SET country = ?, city = ? WHERE id = ?');
                $stmt2->execute(array($country, $city, $id));
            }
        }
        $result['data'][] = array('id' => $id, 'ip' => $ip, 'country' => $country, 'city' => $city, 'date' => $row['date_sign_in'], 'browser' => $browser);
    }
    $result['result'] = 'ok';
} catch (PDOException $e) {
    APIHelpers::showerror(1146, $e->getMessage());
}
unset($SxGeo);
echo json_encode($result);