logo
Мой Диплом

Исходний код программы. Диспетчерская часть

Receiver.php

<?

/** Имя базы данных */

define('DB_NAME', LOGIN_default');

/** Имя пользователя MySQL */

define('DB_USER', LOGIN_default');

/** Пароль к базе данных MySQL */

define('DB_PASSWORD', 'PASSWORD');

/** Имя сервера MySQL */

define('DB_HOST', '127.0.0.1');

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die ("Невозможно подключиться к MySQL");

$user = mysql_real_escape_string($_GET['user']);

$password = mysql_real_escape_string($_GET['password']);

$lat = mysql_real_escape_string($_GET['lat']);

$lon = mysql_real_escape_string($_GET['lon']);

$status = mysql_real_escape_string($_GET['status']);

$status_text = mysql_real_escape_string($_GET['status_text']);

mysql_select_db (DB_NAME);

// http://yamashkin.ru/?user=user&password=pass&lat=45.324&lon=54.634345&status="авария"&status_text="отличный день!"

$query = "SELECT * FROM USERS WHERE USER='$user' AND PASSWORD='$password'";

$aut = mysql_query ($query) or die ("Невозможно добавить");

$row = mysql_fetch_row($aut);

$id = $row[0];

if ($row[0]>=1)

{

mysql_query("SET NAMES 'utf8'");

$query = "INSERT INTO USER_STATE (ID_USER, LAT, LON, STATUS, STATUS_TEXT) VALUES ('$id','$lat','$lon','$status','$status_text')";

mysql_query ($query) or die ("Невозможно добавить");

}

else

{

}

?>

Dispatcher.php

<html>

<head>

<title>Windrose 2012 Dispatcher</title>

<link rel="stylesheet" href="/leaflet/dist/leaflet.css" />

<link rel="stylesheet" href="/style.css" />

<!--[if lte IE 8]>

<link rel="stylesheet" href="/leaflet/dist/leaflet.ie.css" />

<![endif]-->

<script src="/leaflet/dist/leaflet.js"></script>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>

<script src="/ts/jquery.tablesorter.js"></script>

</head>

<body>

<div id="map" style="height: 600px"></div>

<script>

var cloudmadeUrl = 'http://{s}.tile.cloudmade.com/99558b6adf554346afa9ca70bf6104dc/{styleId}/256/{z}/{x}/{y}.png',

cloudmadeAttribution = 'Windrose 2012 Dispatcher',

cloudmadeOptions = {maxZoom: 18, attribution: cloudmadeAttribution};

var minimal = new L.TileLayer(cloudmadeUrl, cloudmadeOptions, {styleId: 22677}),

midnightCommander = new L.TileLayer(cloudmadeUrl, cloudmadeOptions, {styleId: 999}),

normal = new L.TileLayer(cloudmadeUrl, cloudmadeOptions, {styleId: 1})

var map = new L.Map('map', {

center: new L.LatLng(54.184841, 45.174256),

zoom: 13,

layers: [normal]

});

var baseMaps = {

"Minimal": minimal,

"Night View": midnightCommander,

"Normal": normal

};

var layersControl = new L.Control.Layers(baseMaps);

map.addControl(layersControl);

var last_marker =[0,0,0,0,0,0,0,0,0];

var marker = new Array();

var LeafIcon = L.Icon.extend({

iconUrl: '/img/leaf-green.png',

shadowUrl: '/img/leaf-shadow.png',

iconSize: new L.Point(38, 95),

shadowSize: new L.Point(68, 95),

iconAnchor: new L.Point(22, 94),

popupAnchor: new L.Point(-3, -76)

});

var greenIcon = new LeafIcon(),

redIcon = new LeafIcon('/img/leaf-red.png'),

orangeIcon = new LeafIcon('/img/leaf-orange.png');

blueIcon = new LeafIcon('/img/leaf-blue.png');

function show()

{

$.ajax({

url: "get_user.php",

cache: false,

dataType: 'json',

success: function(response){

table_content = "<table id=\"user_table\"><thead><tr><th class=\"th_name\">Имя</th><th class=\"th_phone\">Контактный телефон</th><th class=\"th_s\">Статус</th><th class=\"th_sm\">Статусное сообщение</th><th class=\"th_tm\">Время</th></tr></thead><tbody>";

for (i=0;i<response.length;i++)

{

if (response[i] != false) {

markerLocation = new L.LatLng(parseFloat(response[i][2]), parseFloat(response[i][3]));

if (last_marker[i] == 0) {

if (response[i][4] == "Свободен") marker[i] = new L.Marker(markerLocation, {icon: greenIcon});

if (response[i][4] == "Выполняю заказ") marker[i] = new L.Marker(markerLocation, {icon: blueIcon});

if (response[i][4] == "Перерыв в работе") marker[i] = new L.Marker(markerLocation, {icon: orangeIcon});

if (response[i][4] == "Авария") marker[i] = new L.Marker(markerLocation, {icon: redIcon});

map.addLayer(marker[i]);

}

if (last_marker[i] == 1) {

marker[i].setLatLng(markerLocation);

}

last_marker[i] = 1;

marker[i].bindPopup("<b>"+response[i][0]+"</b><br />"+response[i][5]);

table_content += "<tr><td>"+response[i][0]+"</td><td>"+response[i][1]+"</td><td>"+response[i][4]+"</td><td>"+response[i][5]+"</td><td>"+response[i][6]+"</td></tr>";

}

else

{

last_marker[i] = 0;

}

}

table_content += "</tbody></table>";

document.getElementById("test").innerHTML=table_content;

}

});

}

$(document).ready(function(){

show();

setInterval('show()',1000);

});

</script>

<div id="test"></div>

</body>

</html>

Get_user.php

<?

function json_encode_x ($in) {

return html_entity_decode(

preg_replace(

'/\\\&#x([0-9a-fA-F]{3});/',

'\\\\\u0$1',

preg_replace(

'/\\\u0([0-9a-fA-F]{3})/',

'&#x$1;',

json_encode($in)

)

),

ENT_NOQUOTES,

'utf-8'

);

}

/** Имя базы данных */

define('DB_NAME', LOGIN_default');

/** Имя пользователя MySQL */

define('DB_USER', LOGIN_default');

/** Пароль к базе данных MySQL */

define('DB_PASSWORD', PASSWORD);

/** Имя сервера MySQL */

define('DB_HOST', '127.0.0.1');

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die ("Невозможно подключиться к MySQL");

mysql_select_db (DB_NAME);

mysql_query ("set names utf8");

$query = "SELECT * FROM USERS";

$result = mysql_query ($query) or die ("Ошибка");

$id_array = array();

while ($row = mysql_fetch_row($result))

{

array_push ($id_array,$row[0]);

}

$locate_array = array();

foreach ($id_array as $key => $value) {

$query = "SELECT USERS.NAME, USERS.PHONE, USER_STATE.LAT, USER_STATE.LON, USER_STATE.STATUS, USER_STATE.STATUS_TEXT, USER_STATE.TIME FROM USERS,USER_STATE WHERE USERS.ID_USER=USER_STATE.ID_USER AND USERS.ID_USER = '$value' ORDER BY USER_STATE.TIME DESC LIMIT 1";

$result = mysql_query ($query) or die ("Ошибка");

$row = mysql_fetch_row($result);

array_push ($locate_array,$row);

}

echo json_encode_x($locate_array);

?>