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.
155 lines
4.1 KiB
155 lines
4.1 KiB
<?php
|
|
/*****************************************************************************
|
|
IP Reg, a PHP/MySQL IPAM tool
|
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5)
|
|
Copyright (C) 2011-2023 Thomas Hooge
|
|
|
|
SPDX-License-Identifier: GPL-3.0-or-later
|
|
*****************************************************************************/
|
|
|
|
// strip mac address to 12 char string
|
|
function strip_mac($mac) {
|
|
// strip chars we don't need
|
|
$mac = preg_replace("|[^a-fA-F0-9]|", "", $mac);
|
|
|
|
// capitalize (just because it looks better eh)
|
|
$mac = strtoupper($mac);
|
|
|
|
// and return
|
|
return ($mac);
|
|
}
|
|
|
|
// rebuild mac address
|
|
function write_mac($mac) {
|
|
// check string length
|
|
if (strlen($mac)!=12) {
|
|
// if the MAC is empty, or for whatever reason incorrect, just return
|
|
return $mac;
|
|
} else {
|
|
// count to 12...
|
|
for ($i=0; $i<12; $i++) {
|
|
// ... and strip mac to pieces
|
|
${"mac".$i} = $mac{$i};
|
|
}
|
|
|
|
// get user preference
|
|
$user_mac = $_SESSION['suser_mac'];
|
|
|
|
// count to 12 again...
|
|
for($i=0; $i<12; $i++) {
|
|
// ... and replace user preference with pieces
|
|
$user_mac = preg_replace("/x/", ${"mac".$i}, $user_mac, 1);
|
|
}
|
|
|
|
// and return
|
|
return $user_mac;
|
|
}
|
|
}
|
|
|
|
// redirect page
|
|
function header_location($location) {
|
|
// send header
|
|
header("location: " . $location);
|
|
|
|
// exit to be sure
|
|
exit;
|
|
}
|
|
|
|
// sanitize input
|
|
function sanitize($input) {
|
|
global $dblink;
|
|
|
|
// trim whitespaces
|
|
$input = @trim($input);
|
|
|
|
// magic quotes enabled?
|
|
if(get_magic_quotes_gpc()) {
|
|
// strip slashes
|
|
$input = stripslashes($input);
|
|
}
|
|
|
|
// convert to utf-8
|
|
iconv("UTF-8", "UTF-8", $input);
|
|
|
|
// convert special chars
|
|
$input = htmlentities($input,ENT_QUOTES,'UTF-8');
|
|
|
|
// and return
|
|
return $input;
|
|
}
|
|
|
|
function mysql_nullstring($input) {
|
|
if (isset($input)) {
|
|
return $input;
|
|
} else {
|
|
return '';
|
|
}
|
|
}
|
|
|
|
function lang_getfrombrowser ($allowed_languages, $default_language, $lang_variable = null, $strict_mode = true) {
|
|
if ($lang_variable === null) {
|
|
$lang_variable = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
|
|
}
|
|
if (empty($lang_variable)) {
|
|
return $default_language;
|
|
}
|
|
$accepted_languages = preg_split('/,\s*/', $lang_variable);
|
|
$current_lang = $default_language;
|
|
$current_q = 0;
|
|
foreach ($accepted_languages as $accepted_language) {
|
|
$res = preg_match ('/^([a-z]{1,8}(?:-[a-z]{1,8})*)(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$/i',
|
|
$accepted_language, $matches);
|
|
if (!$res) {
|
|
continue;
|
|
}
|
|
$lang_code = explode ('-', $matches[1]);
|
|
if (isset($matches[2])) {
|
|
$lang_quality = (float)$matches[2];
|
|
} else {
|
|
$lang_quality = 1.0;
|
|
}
|
|
while (count ($lang_code)) {
|
|
if (in_array (strtolower (join ('-', $lang_code)), $allowed_languages)) {
|
|
if ($lang_quality > $current_q) {
|
|
$current_lang = strtolower (join ('-', $lang_code));
|
|
$current_q = $lang_quality;
|
|
break;
|
|
}
|
|
}
|
|
if ($strict_mode) {
|
|
break;
|
|
}
|
|
array_pop ($lang_code);
|
|
}
|
|
}
|
|
return $current_lang;
|
|
}
|
|
|
|
function print_tree_rec($tree, $level) {
|
|
$output = '<ul class="treelvl' . $level. '">' . "\n";
|
|
foreach ($tree as $node) {
|
|
$output .= '<li><a href="' . $node['href'] . '">' . $node['value'] . '</a>';
|
|
if ($node['children']) {
|
|
$output .= "\n" . print_tree_rec($node['children'], $level+1);
|
|
}
|
|
$output .= "</li>\n";
|
|
}
|
|
$output .= "</ul>\n";
|
|
return $output;
|
|
}
|
|
|
|
//function print_tree($params, &$smarty) {
|
|
function print_tree($params, Smarty_Internal_Template $template) {
|
|
if (empty($params['level'])) {
|
|
$level = 0;
|
|
} else {
|
|
$level = $params['level'];
|
|
}
|
|
if (empty($params['tree'])) {
|
|
return '';
|
|
} else {
|
|
return print_tree_rec($params['tree'], $level);
|
|
}
|
|
}
|
|
|
|
?>
|
|
|