session->session_id; } // Set Session Key session. public function set_session($username, $password) { $ci = & get_instance(); // URL to the XML Source $xml_feed_url = 'https://www.hamqth.com/xml.php?u='.$username.'&p='.urlencode($password); // CURL Functions $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $xml_feed_url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 10); $xml = curl_exec($ch); curl_close($ch); // Create XML object $xml = simplexml_load_string($xml); $key = (string) $xml->session->session_id; $ci->session->set_userdata('hamqth_session_key', $key); return true; } public function search($callsign, $key) { $callsign = str_replace("/", "/", $callsign); $data = null; try { // URL to the XML Source $xml_feed_url = 'https://www.hamqth.com/xml.php?id=' . $key . '&callsign=' . $callsign . '&prg=wavelog'; // CURL Functions $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $xml_feed_url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 10); $xml = curl_exec($ch); curl_close($ch); // Create XML object $xml = simplexml_load_string($xml); if (!empty($xml->session->error)) return $data['error'] = $xml->session->error; // only return certain data of a callsign which does not contain a pre- or suffix (see https://github.com/wavelog/wavelog/issues/452) if (strpos($callsign, '/') == false) { // Return Required Fields $data['callsign'] = (string)$xml->search->callsign; $data['name'] = (string)$xml->search->nick; $data['gridsquare'] = (string)$xml->search->grid; $data['city'] = (string)$xml->search->adr_city; $data['lat'] = (string)$xml->search->latitude; $data['long'] = (string)$xml->search->longitude; $data['dxcc'] = (string)$xml->search->adif; $data['iota'] = (string)$xml->search->iota; $data['image'] = (string)$xml->search->picture; $data['state'] = (string)$xml->search->us_state; $data['error'] = (string)$xml->session->error; if ($xml->search->country == "United States") { $data['us_county'] = (string)$xml->search->us_county; } else { $data['us_county'] = null; } } else { $data['callsign'] = (string)$xml->search->callsign; $data['name'] = (string)$xml->search->nick; $data['gridsquare'] = ''; $data['city'] = ''; $data['lat'] = ''; $data['long'] = ''; $data['dxcc'] = ''; $data['iota'] = ''; $data['image'] = (string)$xml->search->picture; $data['state'] = ''; $data['error'] = (string)$xml->session->error; $data['us_county'] = ''; } } finally { return $data; } } }