|
|
|
<?php
|
|
|
|
|
|
|
|
require_once __DIR__ . '/../vendor/autoload.php';
|
|
|
|
require_once __DIR__ . '/../config.php';
|
|
|
|
|
|
|
|
/* Initialize Twig engine */
|
|
|
|
$loader = new \Twig\Loader\FilesystemLoader(__DIR__ . '/../templates');
|
|
|
|
$twig = new \Twig\Environment($loader, [
|
|
|
|
'cache' => __DIR__ . '/../cache',
|
|
|
|
'auto_reload' => true,
|
|
|
|
]);
|
|
|
|
|
|
|
|
$utils = new App\Utils;
|
|
|
|
|
|
|
|
$result = [];
|
|
|
|
$q = "";
|
|
|
|
$a = false;
|
|
|
|
$all = false;
|
|
|
|
|
|
|
|
if (isset($query) && strlen($query) > 67 || isset($_POST["q"]) && strlen($_POST["q"]) > 67) {
|
|
|
|
$result["error"] = "Request is too long, max length is 67 chars";
|
|
|
|
} else if (isset($query) && !empty($query)) {
|
|
|
|
$q = htmlspecialchars($query);
|
|
|
|
} else if (isset($_POST["q"])) {
|
|
|
|
$q = htmlspecialchars($_POST["q"]);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($_POST["a"]))
|
|
|
|
$a = true;
|
|
|
|
|
|
|
|
if (isset($_POST["all"]) || isset($_GET["all"]))
|
|
|
|
$all = true;
|
|
|
|
|
|
|
|
if(!empty($q)) {
|
|
|
|
$pdo = (new App\DB($options))->pdo;
|
|
|
|
|
|
|
|
if ($a)
|
|
|
|
$STH = $pdo->query("SELECT `host`, `base64`, `base32`, `last_seen` FROM `hosts` WHERE (`host` LIKE '%" . $q . "%' OR `base32` LIKE '%" . $q . "%') AND `disabled` = 0 LIMIT " . $options["tableitems"]);
|
|
|
|
else
|
|
|
|
$STH = $pdo->query("SELECT `host`, `base64`, `base32`, `last_seen` FROM `hosts` WHERE `host` LIKE '%" . $q . "%' OR `base32` LIKE '%" . $q . "%' LIMIT " . $options["tableitems"]);
|
|
|
|
|
|
|
|
$STH->setFetchMode(PDO::FETCH_ASSOC);
|
|
|
|
$row = $STH->fetchAll();
|
|
|
|
|
|
|
|
if (empty($row))
|
|
|
|
$result["error"] = "Nothing was found";
|
|
|
|
else
|
|
|
|
$result = array_merge($result, $row);
|
|
|
|
}
|
|
|
|
|
|
|
|
$template = $twig->load('search.twig');
|
|
|
|
echo $template->render(['query' => $q ?: 'removed request', 'result' => $result, 'limit' => $options["tableitems"], 'all' => $all]);
|