Ysurac /
FlightAirMap
This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
| 1 | <?php |
||
| 2 | /** |
||
| 3 | * This class is part of FlightAirmap. It's used to do flight ident translation |
||
| 4 | * |
||
| 5 | * Copyright (c) Ycarus (Yannick Chabanois) <[email protected]> |
||
| 6 | * Licensed under AGPL license. |
||
| 7 | * For more information see: https://www.flightairmap.com/ |
||
| 8 | */ |
||
| 9 | require_once(dirname(__FILE__).'/settings.php'); |
||
| 10 | require_once(dirname(__FILE__).'/class.Connection.php'); |
||
| 11 | require_once(dirname(__FILE__).'/class.Spotter.php'); |
||
| 12 | require_once(dirname(__FILE__).'/class.Common.php'); |
||
| 13 | require_once(dirname(__FILE__).'/libs/uagent/uagent.php'); |
||
| 14 | |||
| 15 | |||
| 16 | class Translation { |
||
| 17 | public $db; |
||
| 18 | |||
| 19 | /* |
||
| 20 | * Initialize DB connection |
||
| 21 | */ |
||
| 22 | public function __construct($dbc = null) { |
||
| 23 | $Connection = new Connection($dbc); |
||
| 24 | $this->db = $Connection->db(); |
||
| 25 | } |
||
| 26 | |||
| 27 | /** |
||
| 28 | * Change IATA to ICAO value for ident |
||
| 29 | * |
||
| 30 | * @param string $ident ident |
||
| 31 | * @return string the icao |
||
| 32 | */ |
||
| 33 | public function ident2icao($ident) { |
||
| 34 | $Spotter = new Spotter(); |
||
| 35 | if (!is_numeric(substr($ident, 0, 3))) { |
||
| 36 | if (is_numeric(substr(substr($ident, 0, 3), -1, 1))) { |
||
| 37 | $airline_icao = substr($ident, 0, 2); |
||
| 38 | } elseif (is_numeric(substr(substr($ident, 0, 4), -1, 1))) { |
||
| 39 | //$airline_icao = substr($ident, 0, 3); |
||
| 40 | return $ident; |
||
| 41 | } else return $ident; |
||
| 42 | } else return $ident; |
||
| 43 | if ($airline_icao == 'AF') { |
||
| 44 | if (filter_var(substr($ident,2),FILTER_VALIDATE_INT,array("flags"=>FILTER_FLAG_ALLOW_OCTAL))) $icao = $ident; |
||
| 45 | else $icao = 'AFR'.ltrim(substr($ident,2),'0'); |
||
| 46 | } else { |
||
| 47 | $identicao = $Spotter->getAllAirlineInfo($airline_icao); |
||
| 48 | if (isset($identicao[0])) { |
||
| 49 | $icao = $identicao[0]['icao'].ltrim(substr($ident,2),'0'); |
||
| 50 | } else $icao = $ident; |
||
| 51 | } |
||
| 52 | return $icao; |
||
| 53 | } |
||
| 54 | |||
| 55 | /** |
||
| 56 | * @param $ident |
||
| 57 | * @return string |
||
| 58 | */ |
||
| 59 | public function getOperator($ident) { |
||
| 60 | $query = "SELECT * FROM translation WHERE Operator = :ident LIMIT 1"; |
||
| 61 | $query_values = array(':ident' => $ident); |
||
| 62 | try { |
||
| 63 | $sth = $this->db->prepare($query); |
||
| 64 | $sth->execute($query_values); |
||
| 65 | } catch(PDOException $e) { |
||
| 66 | return "error : ".$e->getMessage(); |
||
| 67 | } |
||
| 68 | $row = $sth->fetch(PDO::FETCH_ASSOC); |
||
| 69 | $sth->closeCursor(); |
||
| 70 | if (isset($row['operator_correct'])) { |
||
| 71 | return $row['operator_correct']; |
||
| 72 | } else return $ident; |
||
| 73 | } |
||
| 74 | |||
| 75 | /** |
||
| 76 | * @param $ident |
||
| 77 | * @param $correct_ident |
||
| 78 | * @param $source |
||
| 79 | * @return string |
||
| 80 | */ |
||
| 81 | public function addOperator($ident, $correct_ident, $source) { |
||
| 82 | $query = "INSERT INTO translation (Operator,Operator_correct,Source) VALUES (:ident,:correct_ident,:source)"; |
||
| 83 | $query_values = array(':ident' => $ident,':correct_ident' => $correct_ident, ':source' => $source); |
||
| 84 | try { |
||
| 85 | $sth = $this->db->prepare($query); |
||
| 86 | $sth->execute($query_values); |
||
| 87 | } catch(PDOException $e) { |
||
| 88 | return "error : ".$e->getMessage(); |
||
| 89 | } |
||
| 90 | } |
||
| 91 | |||
| 92 | /** |
||
| 93 | * @param $ident |
||
| 94 | * @param $correct_ident |
||
| 95 | * @param $source |
||
| 96 | * @return string |
||
| 97 | */ |
||
| 98 | public function updateOperator($ident, $correct_ident, $source) { |
||
| 99 | $query = "UPDATE translation SET Operator_correct = :correct_ident,Source = :source WHERE Operator = :ident"; |
||
| 100 | $query_values = array(':ident' => $ident,':correct_ident' => $correct_ident, ':source' => $source); |
||
| 101 | try { |
||
| 102 | $sth = $this->db->prepare($query); |
||
| 103 | $sth->execute($query_values); |
||
| 104 | } catch(PDOException $e) { |
||
| 105 | return "error : ".$e->getMessage(); |
||
| 106 | } |
||
| 107 | } |
||
| 108 | |||
| 109 | /** |
||
| 110 | * @param $ident |
||
| 111 | * @param bool $web |
||
| 112 | * @return string |
||
| 113 | */ |
||
| 114 | public function checkTranslation($ident, $web = false) { |
||
|
0 ignored issues
–
show
|
|||
| 115 | global $globalTranslationSources, $globalTranslationFetch; |
||
| 116 | //if (!isset($globalTranslationSources)) $globalTranslationSources = array('planefinder'); |
||
| 117 | $globalTranslationSources = array(); |
||
| 118 | if (!isset($globalTranslationFetch)) $globalTranslationFetch = TRUE; |
||
| 119 | //echo "Check Translation for ".$ident."..."; |
||
| 120 | $correct = $this->getOperator($ident); |
||
| 121 | if ($correct != '' && $correct != $ident) { |
||
| 122 | //echo "Found in DB !\n"; |
||
| 123 | return $correct; |
||
| 124 | } |
||
| 125 | /* |
||
| 126 | elseif ($web && $globalTranslationFetch) { |
||
| 127 | if (! is_numeric(substr($ident,-4))) { |
||
| 128 | if (count($globalTranslationSources) > 0) { |
||
| 129 | $correct = $this->fromPlanefinder($ident); |
||
| 130 | if ($correct != '') { |
||
| 131 | $correct = $this->ident2icao($correct); |
||
| 132 | if ($correct != $ident) { |
||
| 133 | $this->addOperator($ident,$correct,'planefinder'); |
||
| 134 | //echo "Add to DB ! (".$correct.") \n"; |
||
| 135 | return $correct; |
||
| 136 | } |
||
| 137 | } |
||
| 138 | } |
||
| 139 | } |
||
| 140 | } |
||
| 141 | */ |
||
| 142 | return $this->ident2icao($ident); |
||
| 143 | } |
||
| 144 | |||
| 145 | /* |
||
| 146 | // Disabled as Planefinder request |
||
| 147 | function fromPlanefinder($icao) { |
||
| 148 | $url = 'http://planefinder.net/data/endpoints/search_ajax.php?searchText='.$icao; |
||
| 149 | $Common = new Common(); |
||
| 150 | $json = $Common->getData($url); |
||
| 151 | $parsed_json = json_decode($json); |
||
| 152 | if (isset($parsed_json->flights[0]->title) && isset($parsed_json->flights[0]->subtitle) && $parsed_json->flights[0]->subtitle == $icao) return $parsed_json->flights[0]->title; |
||
| 153 | else return ''; |
||
| 154 | } |
||
| 155 | */ |
||
| 156 | } |
||
| 157 | //echo Translation->checkTranslation('EZY268X'); |
||
| 158 | //Translation->fromPlanefinder('EZY268X'); |
||
| 159 | ?> |
This check looks from parameters that have been defined for a function or method, but which are not used in the method body.