// // If my_lib.php is called directly, redirect to login.php // if (ereg("my_lib.php", $PHP_SELF)) { header("Location: login.php"); } include "site_lib.php"; // // check_session // Action: Check if a session already exists, if not redirect to login.php // Call: check_session() // function check_session() { session_name("SessID"); session_start(); if (!session_is_registered("sessid")) { // if session is not registered redirect to login.php header("Location: login.php"); exit; } $sessid[domain] = $_SESSION[sessid][domain]; $sessid[username] = $_SESSION[sessid][username]; return $sessid; } // // check_admin // Action: Check if user is admin and allowed to view the page // Call: check_admin(string admin); // function check_admin($admin) { if ($admin == "N") { print_header(); print "You are not allowed to view this page.\n"; print_footer(); exit; } } // // check_string // Action: checks if a string is valid and returns TRUE is this is the case. // Call: check_string(string var) // function check_string($var) { return (preg_match('/^([A-Za-z ]+)+$/', $var)); } // // check_email // Action: Checks if email is valid and returns TRUE if this is the case. // Call: check_email(string email) // function check_email($email) { return (preg_match('/^[-!#$%&\'*+\\.\/0-9=?A-Z^_{|}~]+' . '@' . '([-0-9A-Z]+\.)+' . '([0-9A-Z]){2,4}$/i', trim($email))); } // // md5crypt // Action: Creates an MD5 passwd that is readable by FreeBSD daemons // Call: md5crypt(string cleartextpasswd) // $MAGIC = "$1$"; $ITOA64 = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; function md5crypt($pw, $salt="", $magic="") { global $MAGIC; if ($magic == "") $magic = $MAGIC; if ($salt == "") $salt = create_salt(); $slist = explode("$", $salt); if ($slist[0] == "1") $salt = $slist[1]; $salt = substr($salt, 0, 8); $ctx = $pw . $magic . $salt; $final = hex2bin(md5($pw . $salt . $pw)); for ($i=strlen($pw); $i>0; $i-=16) { if ($i > 16) $ctx .= substr($final,0,16); else $ctx .= substr($final,0,$i); } $i = strlen($pw); while ($i > 0) { if ($i & 1) $ctx .= chr(0); else $ctx .= $pw[0]; $i = $i >> 1; } $final = hex2bin(md5($ctx)); for ($i=0;$i<1000;$i++) { $ctx1 = ""; if ($i & 1) $ctx1 .= $pw; else $ctx1 .= substr($final,0,16); if ($i % 3) $ctx1 .= $salt; if ($i % 7) $ctx1 .= $pw; if ($i & 1) $ctx1 .= substr($final,0,16); else $ctx1 .= $pw; $final = hex2bin(md5($ctx1)); } $passwd = ""; $passwd .= to64( ( (ord($final[0]) << 16) | (ord($final[6]) << 8) | (ord($final[12])) ), 4); $passwd .= to64( ( (ord($final[1]) << 16) | (ord($final[7]) << 8) | (ord($final[13])) ), 4); $passwd .= to64( ( (ord($final[2]) << 16) | (ord($final[8]) << 8) | (ord($final[14])) ), 4); $passwd .= to64( ( (ord($final[3]) << 16) | (ord($final[9]) << 8) | (ord($final[15])) ), 4); $passwd .= to64( ( (ord($final[4]) << 16) | (ord($final[10]) << 8) | (ord($final[5])) ), 4); $passwd .= to64( ord($final[11]), 2); return "$magic$salt\$$passwd"; } function create_salt() { srand((double)microtime()*1000000); $salt = substr(md5(rand(0,9999999)), 0, 8); return $salt; } function hex2bin($str) { $len = strlen($str); $nstr = ""; for ($i=0;$i<$len;$i+=2) { $num = sscanf(substr($str,$i,2), "%x"); $nstr.=chr($num[0]); } return $nstr; } function to64($v, $n) { global $ITOA64; $ret = ""; while (($n - 1) >= 0) { $n--; $ret .= $ITOA64[$v & 0x3f]; $v = $v >> 6; } return $ret; } // // print_header // Action: Prints out the default header for every page // Call: print_header([string title],[string subtitle],[hex bgcolor]) // function print_header($title = "", $subtitle = "") { if (empty($title)) { global $title; } if (empty($subtitle)) { global $subtitle; } print "\n"; print "
\n"; if (file_exists(realpath("./stylesheet.css"))) { print "\n"; } print "