<?php
class ExternalLinkController {
public function index() {
$link = null;
if (isset($_GET['link'])) {
$link = trim(urldecode($_GET['link']));
} elseif (isset($_GET['u'])) {
$link = trim(urldecode($_GET['u']));
} elseif (isset($_GET['q'])) {
$link = 'http://search.about.com/?q=' . trim($_GET['q']);
$this->insertAppReferral($link);
}
if ($link) {
$this->redirect($link);
} else {
return show_404();
}
}
public function ajx() {
$link = $_GET['link'];
$this->setAboutCookies($link);
$response = true;
header('Content-type: application/json');
echo json_encode($response);
return $this;
}
private function redirect($link) {
if (stripos($link, 'http') !== 0) {
$link = 'http://' . $link;
}
$this->setAboutCookies($link);
// Permanent redirection
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $link);
exit;
}
private function setAboutCookies($link) {
if (stripos($link, 'about.com') && stripos($link, 'caloriecount.about.com') === false) {
$expire = new DateTime('+1800 seconds', new DateTimeZone('GMT'));
$secure = false;
}
}
private function insertAppReferral($link) {
if (!$link) return false;
$master = Db::connect('master');
$sql = sprintf("INSERT INTO app_referal (campaign, ipaddr, date, device, val) VALUES (%s, %s, NOW(), %s, %s)",
'asdf',
'asdf',
'asdf',
'asdf'
);
mysqli_query($master, $sql);
}
}
preferences:
51.38 ms | 402 KiB | 5 Q