· 7 years ago · Oct 17, 2018, 07:50 AM
1<?php
2
3define('version','official-w3052-3/12/2016');
4define('LOAD_TYPE_RANDOM_EDITABLE','randomopen');
5define('LOAD_TYPE_RANDOM_LOCKED','randomlocked');
6require_once("interface.php");
7$dbcreds = smartCARS::getdbcredentials();
8
9$host = 'localhost';
10$db = 'akuardwo_dev';
11$user = 'akuardwo_youssef';
12$pass = '+NAFB80fSHva';
13$charset = 'utf8';
14
15$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
16$options = [
17 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
18 PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
19 PDO::ATTR_EMULATE_PREPARES => false,
20];
21try {
22 $pdo = new PDO($dsn, $user, $pass, $options);
23} catch (\PDOException $e) {
24 throw new \PDOException($e->getMessage(), (int)$e->getCode());
25}
26
27function table_structure() {
28 global $dbConnection;
29 $param = "CREATE TABLE IF NOT EXISTS smartCARS_sessions ( id int(16) AUTO_INCREMENT, PRIMARY KEY(id), dbid int(16), sessionid varchar(64), timestamp int(16)); CREATE TABLE IF NOT EXISTS smartCARS_charteredflights (routeid int, PRIMARY KEY(routeid), dbid int, bidid int);";
30 $stmt = $dbConnection->prepare($param);
31 $stmt->execute();
32 $stmt->closeCursor();
33 return;
34}
35
36function clear_old_sessions() {
37 global $dbConnection;
38 $stmt = $dbConnection->prepare("DELETE FROM smartCARS_sessions WHERE timestamp < ?");
39 $stmt->execute(array(
40 time() - 2592000
41 ));
42 $stmt->closeCursor();
43}
44
45function write_sessid($pilotid, $sessid) {
46 global $dbConnection;
47 $stmt = $dbConnection->prepare("INSERT INTO smartCARS_sessions (id, dbid, sessionid, timestamp) VALUES (NULL, ?, ?, ?)");
48 $stmt->execute(array(
49 $pilotid,
50 $sessid,
51 time()
52 ));
53 $stmt->closeCursor();
54}
55
56function check_session($dbid, $sessionid) {
57 global $dbConnection;
58 $stmt = $dbConnection->prepare("SELECT * FROM smartCARS_sessions WHERE dbid = ? AND sessionid = ?");
59 $stmt->execute(array(
60 $dbid,
61 $sessionid
62 ));
63 $res = $stmt->fetch();
64 if($res['dbid'] != "")
65 return true;
66 return false;
67}
68
69$action = $_GET['action'];
70switch($action) {
71 case "manuallogin":
72 table_structure();
73 clear_old_sessions();
74 $res = smartCARS::manuallogin($_GET['userid'],$_POST['password'],$_GET['sessionid']);
75 if($res['result'] == "ok") {
76 write_sessid($res['dbid'], $_GET['sessionid']);
77 $res = str_replace(",","",$res);
78 echo($res['dbid'] . "," . $res['code'] . "," . $res['pilotid'] . "," . $_GET['sessionid'] . "," . $res['firstname'] . "," . $res['lastname'] . "," . $res['email'] . "," . $res['ranklevel'] . "," . $res['rankstring']);
79 }
80 else {
81 switch($res['result']) {
82 case "inactive":
83 echo("ACCOUNT_INACTIVE");
84 break;
85 case "unconfirmed":
86 echo("ACCOUNT_UNCONFIRMED");
87 break;
88 default:
89 echo("AUTH_FAILED");
90 }
91 }
92 break;
93 case "automaticlogin":
94 table_structure();
95 clear_old_sessions();
96 $res = smartCARS::automaticlogin($_GET['dbid'],$_GET['oldsessionid'], $_GET['sessionid']);
97 if($res['result'] == "ok") {
98 write_sessid($res['dbid'], $_GET['sessionid']);
99 $res = str_replace(",","",$res);
100 echo($res['dbid'] . "," . $res['code'] . "," . $res['pilotid'] . "," . $_GET['sessionid'] . "," . $res['firstname'] . "," . $res['lastname'] . "," . $res['email'] . "," . $res['ranklevel'] . "," . $res['rankstring']);
101 }
102 else {
103 switch($res['result']) {
104 case "inactive":
105 echo("ACCOUNT_INACTIVE");
106 break;
107 case "unconfirmed":
108 echo("ACCOUNT_UNCONFIRMED");
109 break;
110 default:
111 echo("AUTH_FAILED");
112 }
113 }
114 break;
115 case "verifysession": //called by the chat server to authenticate users
116 $res = smartCARS::verifysession($_GET['dbid'], $_GET['sessionid']);
117 if($res['result'] == "SUCCESS") {
118 $res = str_replace(",","",$res);
119 echo($_GET['sessionid'] . "," . $res['firstname'] . "," . $res['lastname']);
120 }
121 else
122 echo("AUTH_FAILED");
123 break;
124 case "getpilotcenterdata":
125 $res = smartCARS::getpilotcenterdata($_GET['dbid']);
126 if($res['totalflights'] != "") {
127 $res = str_replace(",","",$res);
128 echo($res['totalhours'] . "," . $res['totalflights'] . "," . $res['averagelandingrate'] . "," . $res['totalpireps']);
129 }
130 else
131 echo("NO_DATA");
132 break;
133 case "getairports":
134 $res = smartCARS::getairports($_GET['dbid']);
135 $runcount = 0;
136 foreach($res['airports'] as $apt) {
137 if($rc != 0)
138 echo(";");
139 $apt = str_replace(";","",$apt);
140 $apt = str_replace("|","",$apt);
141 echo ($apt[$res['format']['id']] . "|" . strtoupper($apt[$res['format']['icao']]) . "|" . $apt[$res['format']['name']] . "|" . $apt[$res['format']['latitude']] . "|" . $apt[$res['format']['longitude']] . "|" . $apt[$res['format']['country']]);
142 $rc++;
143 }
144 break;
145 case "getaircraft":
146 $res = smartCARS::getaircraft($_GET['dbid']);
147 $runcount = 0;
148 foreach($res['aircraft'] as $ac) {
149 if($runcount != 0)
150 echo(";");
151 $ac = str_replace(";","",$ac);
152 $ac = str_replace(",","",$ac);
153 echo ($ac[$res['format']['id']] . "," . $ac[$res['format']['fullname']] . "," . $ac[$res['format']['icao']] . "," . $ac[$res['format']['registration']] . "," . $ac[$res['format']['maxpassengers']] . "," . $ac[$res['format']['maxcargo']] . "," . $ac[$res['format']['requiredranklevel']]);
154 $runcount++;
155 }
156 break;
157 case "getbidflights":
158 $res = smartCARS::getbidflights($_GET['dbid']);
159 $runcount = 0;
160 if(sizeof($res['schedules']) > 0) {
161 $runcount = 0;
162 foreach($res['schedules'] as $schedule) {
163 if($runcount != 0)
164 echo(";");
165 $schedule = str_replace(";","",$schedule);
166 $schedule = str_replace("|","",$schedule);
167 echo($schedule[$res['format']['bidid']] . "|" . $schedule[$res['format']['routeid']] . "|" . $schedule[$res['format']['code']] . "|" . $schedule[$res['format']['flightnumber']] . "|" . $schedule[$res['format']['departureicao']] . "|" . $schedule[$res['format']['arrivalicao']] . "|" . $schedule[$res['format']['route']] . "|" . $schedule[$res['format']['cruisingaltitude']] . "|" . $schedule[$res['format']['aircraft']] . "|" . $schedule[$res['format']['duration']] . "|" . $schedule[$res['format']['departuretime']] . "|" . $schedule[$res['format']['arrivaltime']] . "|" . $schedule[$res['format']['load']] . "|" . $schedule[$res['format']['type']] . "|" . $schedule[$res['format']['daysofweek']]);
168 $runcount++;
169 }
170 }
171 else
172 echo("NONE");
173 break;
174 case "bidonflight":
175 if(check_session($_GET['dbid'], $_GET['sessionid']) == true) {
176 $ret = smartCARS::bidonflight($_GET['dbid'],$_GET['routeid']);
177 switch($ret) {
178 case 0:
179 echo("FLIGHT_BID");
180 break;
181 case 1:
182 echo("FLIGHT_ALREADY_BID");
183 break;
184 case 2:
185 echo("INVALID_ROUTEID");
186 break;
187 }
188 }
189 else
190 echo("AUTH_FAILED");
191 break;
192 case "deletebidflight":
193 if(check_session($_GET['dbid'], $_GET['sessionid']) == true) {
194 smartCARS::deletebidflight($_GET['dbid'],$_GET['bidid']);
195 echo("FLIGHT_DELETED");
196 }
197 else
198 echo("AUTH_FAILED");
199 break;
200 case "searchpireps":
201 $res = smartCARS::searchpireps($_GET['dbid'], $_GET['departureicao'], $_GET['arrivalicao'], $_GET['startdate'], $_GET['enddate'], $_GET['aircraft'], $_GET['status']);
202 if(sizeof($res['pireps']) > 0) {
203 $runcount = 0;
204 foreach($res['pireps'] as $pirep) {
205 if($runcount != 0)
206 echo(";");
207 $pirep = str_replace(";","",$pirep);
208 $pirep = str_replace("|","",$pirep);
209 echo($pirep[$res['format']['pirepid']] . "|" . $pirep[$res['format']['code']] . "|" . $pirep[$res['format']['flightnumber']] . "|" . $pirep[$res['format']['date']] . "|" . $pirep[$res['format']['departureicao']] . "|" . $pirep[$res['format']['arrivalicao']] . "|" . $pirep[$res['format']['aircraft']]);
210 $runcount++;
211 }
212 }
213 else
214 echo("NONE");
215 break;
216 case "getpirepdata":
217 $res = smartCARS::getpirepdata($_GET['dbid'], $_GET['pirepid']);
218 $res = str_replace(",","",$res);
219 echo($res['duration'] . "," . $res['landingrate'] . "," . $res['fuelused'] . "," . $res['status'] . "," . $res['log']);
220 break;
221 case "searchflights":
222 $res = smartCARS::searchflights($_GET['dbid'], $_GET['departureicao'], $_GET['mintime'], $_GET['maxtime'], $_GET['arrivalicao'], $_GET['aircraft']);
223 if(sizeof($res['schedules']) > 0) {
224 $runcount = 0;
225 foreach($res['schedules'] as $schedule) {
226 if($runcount != 0)
227 echo(";");
228 $schedule = str_replace(";","",$schedule);
229 $schedule = str_replace("|","",$schedule);
230 echo($schedule[$res['format']['routeid']] . "|" . $schedule[$res['format']['code']] . "|" . $schedule[$res['format']['flightnumber']] . "|" . $schedule[$res['format']['departureicao']] . "|" . $schedule[$res['format']['arrivalicao']] . "|" . $schedule[$res['format']['route']] . "|" . $schedule[$res['format']['cruisingaltitude']] . "|" . $schedule[$res['format']['aircraft']] . "|" . $schedule[$res['format']['flighttime']] . "|" . $schedule[$res['format']['departuretime']] . "|" . $schedule[$res['format']['arrivaltime']] . "|" . $schedule[$res['format']['daysofweek']]);
231 $runcount++;
232 }
233 }
234 else
235 echo("NONE");
236 break;
237 case "createflight":
238 if(check_session($_GET['dbid'], $_GET['sessionid']) == true) {
239 $ret = false;
240 $ret = smartCARS::createflight($_GET['dbid'], $_GET['flightcode'], $_GET['flightnumber'], $_GET['ticketprice'], $_GET['departureicao'], $_GET['arrivalicao'],$_GET['aircraft'], $_GET['flighttype'], $_GET['departuretime'], $_GET['arrivaltime'], $_GET['flighttime'], $_POST['route'], $_GET['cruisealtitude'], $_GET['distance']);
241 if($ret == true)
242 echo("SUCCESS");
243 else
244 echo("ERROR");
245 }
246 else
247 echo("AUTH_FAILED");
248 break;
249 case "positionreport":
250 if(check_session($_GET['dbid'], $_GET['sessionid']) == true) {
251 $ret = smartCARS::positionreport($_GET['dbid'],$_GET['flightnumber'],$_GET['latitude'], $_GET['longitude'],$_GET['magneticheading'], $_GET['trueheading'], $_GET['altitude'], $_GET['groundspeed'], $_GET['departureicao'], $_GET['arrivalicao'], $_GET['phase'], $_GET['arrivaltime'], $_GET['departuretime'], $_GET['distanceremaining'], $_POST['route'], $_GET['timeremaining'], $_GET['aircraft'], $_GET['onlinenetwork']);
252 if($ret == true)
253 echo("SUCCESS");
254 else
255 echo("ERROR");
256 }
257 else
258 echo("AUTH_FAILED");
259 break;
260 case "filepirep":
261 if(check_session($_GET['dbid'], $_GET['sessionid']) == true) {
262 $ret = smartCARS::filepirep($_GET['dbid'], $_GET['code'], $_GET['flightnumber'], $_GET['routeid'], $_GET['bidid'], $_GET['departureicao'], $_GET['arrivalicao'], $_POST['route'], $_GET['aircraft'], $_GET['load'], $_GET['flighttime'], $_GET['landingrate'], $_POST['comments'], $_GET['fuelused'], $_POST['log']);
263 if($ret == true)
264 echo("SUCCESS");
265 else
266 echo("ERROR");
267 }
268 else
269 echo("AUTH_FAILED");
270 break;
271 default:
272 echo("Script OK, Frame Version: " . version . ", Interface Version: " . interface_version);
273 break;
274}
275?>