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.
		
		
			
		
		
		
		
			
		
			
				
					
					
						
							170 lines
						
					
					
						
							5.3 KiB
						
					
					
				
			
		
		
	
	
							170 lines
						
					
					
						
							5.3 KiB
						
					
					
				<?php
 | 
						|
    /*****************************************************************************
 | 
						|
    IP Reg, a PHP/MySQL IPAM tool
 | 
						|
    Copyright (C) 2007-2009 Wietse Warendorff
 | 
						|
 | 
						|
    This program is free software: you can redistribute it and/or modify
 | 
						|
    it under the terms of the GNU General Public License as published by
 | 
						|
    the Free Software Foundation, either version 3 of the License, or
 | 
						|
    (at your option) any later version.
 | 
						|
 | 
						|
    This program is distributed in the hope that it will be useful,
 | 
						|
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
    GNU General Public License for more details.
 | 
						|
 | 
						|
    You should have received a copy of the GNU General Public License
 | 
						|
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
						|
 | 
						|
    For more information, visit http://sourceforge.net/projects/ipreg,
 | 
						|
    or contact me at wietsew@users.sourceforge.net
 | 
						|
    *****************************************************************************/
 | 
						|
 | 
						|
    // 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');
 | 
						|
 | 
						|
        // make sql ready
 | 
						|
        $input = mysqli_real_escape_string($dblink, $input);
 | 
						|
 | 
						|
        // 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) {
 | 
						|
        if (empty($params['level'])) {
 | 
						|
            $level = 0;
 | 
						|
        } else {
 | 
						|
            $level = $params['level'];
 | 
						|
        }
 | 
						|
        if (empty($params['tree'])) {
 | 
						|
            return '';
 | 
						|
        } else {
 | 
						|
            return print_tree_rec($params['tree'], $level);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
?>
 | 
						|
 |