Domain registry project http://reg.i2p/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

58 lines
1.6 KiB

<?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;
$domain = "";
$uri = "";
$result = [];
$error = "";
// Get request data and check if request contain uri path
if (isset($query) && !empty($query)) {
if (strpos($query, "/")) {
$a = explode ("/", $query, 2);
$domain = htmlspecialchars($a[0]);
$uri = $a[1];
} else {
$domain = htmlspecialchars($query);
}
}
// Check domain name
if(!empty($domain) && !$utils->isValidDomain($domain, $error)) {
$domain = "";
$result["error"] = 'Not valid query: ' . $error;
}
else if(!empty($domain) && $utils->isValidDomain($domain, $error)) {
if ((new App\Utils)->isPunycodeDomain($domain)) {
$domain = idn_to_utf8($domain, 0, INTL_IDNA_VARIANT_UTS46);
}
$pdo = (new App\DB($options))->pdo;
$STH = $pdo->prepare('SELECT `host`, `base64`, `base32`, `last_seen`, `blacklisted` FROM `hosts` WHERE `host` = ? LIMIT 1');
$STH->execute([$domain]);
$row = $STH->fetchAll(PDO::FETCH_ASSOC);
if (empty($row)) {
$result["error"] = "No such host is found";
} else {
$result = array_merge($result, $row[0]);
if (!empty($uri)) {
$result['uri'] = $uri;
}
}
}
$template = $twig->load('jump.twig');
echo $template->render(['autojump' => true, 'domain' => $domain, 'result' => $result]);