/
runq.php
91 lines (74 loc) · 2 KB
/
runq.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php
$noredirect = 2;
$query = 'redirect';
$output = 'none';
$code = '';
function do_status($code, $output = 'none') {
$url = get_url($code);
$clicks = get_clicks($code);
$spam = lookup_url_is_spam($url);
$spam == false ? $spam_text = 'no' : $spam_text = 'yes';
if ($output == 'json') {
header('Content-Type: application/json');
$json_output = array('code' => $code, 'url' => $url, 'clicks' => $clicks, 'spam' => $spam_text);
echo json_encode($json_output, JSON_NUMERIC_CHECK | JSON_UNESCAPED_SLASHES);
} else {
header('Content-type: text/html; charset=utf-8');
echo "Code: <a href=".SITE_URL."/".$code." target=_blank>".$code."</a><br/>";
echo "Clicks: " .$clicks."<br/>";
echo "URL: <a href=".$url." target=_blank>".$url."</a><br/>";
echo "SPAM: ".$spam_text."<br/>";
}
}
function do_redirect($code, $noredirect = 0) {
if ($noredirect)
return;
$url = get_url($code);
if (empty($url))
return;
if (lookup_url_is_spam($url))
return;
if (check4spam($url)) {
add_bad_url_to_db($url);
return;
}
increase_clicks($code);
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");
header('Location: '.$url, true, 301);
exit(0);
}
function do_blacklist($code) {
if (blacklist_code($code))
echo "Code has been blacklisted.";
}
function do_delete($code) {
if (delete_code($code))
echo "Code has been deleted.";
}
require_once('include/load.php');
if (isset($_GET['alias'])) {
if (!empty($_GET['alias']))
$code = escape($_GET['alias']);
}
if (isset($_GET['q'])) {
if (!empty($_GET['q']))
$query = escape($_GET['q']);
}
if (isset($_GET['j'])) {
if (!empty($_GET['j']))
$output = escape($_GET['j']);
}
if (preg_match("/^[a-zA-Z0-9]+$/", $code) && code_exists($code)) {
if ($query == 'redirect' || empty($query))
$noredirect = 0;
if ($query == 'status')
do_status($code, $output);
if ($query == 'blacklist')
do_blacklist($code);
} else
$noredirect = 1;
out:
do_redirect($code, $noredirect);
if ($noredirect < 2)
header('Location: '.SITE_URL);