X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Flib%2Fcommon.lib.php;h=e2950753ec4e208475822050253aa0f122cf763b;hb=817c14c6c2098d85ef912fb95898c857bf533b4f;hp=167b95b25be07acae2f1fbf763e09647f8bcbe87;hpb=809672af61a5feba4c8daa8c2f4b62e64177fc2b;p=timetracker.git diff --git a/WEB-INF/lib/common.lib.php b/WEB-INF/lib/common.lib.php index 167b95b2..e2950753 100644 --- a/WEB-INF/lib/common.lib.php +++ b/WEB-INF/lib/common.lib.php @@ -26,17 +26,12 @@ // | https://www.anuko.com/time_tracker/credits.htm // +----------------------------------------------------------------------+ - /** - * @return unknown - * @param file unknown - * @param version = "" unknown - * @desc Loads a class - */ - function import( $class_name ) { - $libs = array( - dirname($_SERVER["SCRIPT_FILENAME"]), - LIBRARY_DIR - ); +// import() function loads a class. +function import($class_name) { + $libs = array( + dirname($_SERVER["SCRIPT_FILENAME"]), + LIBRARY_DIR + ); $pos = strpos($class_name, "."); if (!($pos === false)) { @@ -61,7 +56,7 @@ print '
load_class: error loading file "'.$filename.'"'; die(); - } +} // The mu_sort function is used to sort a multi-dimensional array. // It looks like the code example is taken from the PHP manual http://ca2.php.net/manual/en/function.sort.php @@ -127,7 +122,6 @@ die($mdb2->getMessage()); } - $mdb2->setOption('debug', true); $mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC); $GLOBALS["_MDB2_CONNECTION"] = $mdb2; @@ -136,13 +130,6 @@ } - function closeConnection() { - if (isset($GLOBALS["_DB_CONNECTION"])) { - $GLOBALS["_DB_CONNECTION"]->close(); - unset($GLOBALS["_DB_CONNECTION"]); - } - } - // time_to_decimal converts a time string such as 1:15 to its decimal representation such as 1.25 or 1,25. function time_to_decimal($val) { global $user; @@ -163,11 +150,9 @@ function sec_to_time_fmt_hm($sec) function magic_quotes_off() { - // if (get_magic_quotes_gpc()) { // This check is now done before calling this function. - $_POST = array_map('stripslashes_deep', $_POST); - $_GET = array_map('stripslashes_deep', $_GET); - $_COOKIE = array_map('stripslashes_deep', $_COOKIE); - // } + $_POST = array_map('stripslashes_deep', $_POST); + $_GET = array_map('stripslashes_deep', $_GET); + $_COOKIE = array_map('stripslashes_deep', $_COOKIE); } // check_extension checks whether a required PHP extension is loaded and dies if not so. @@ -180,7 +165,7 @@ function check_extension($ext) // isTrue is a helper function to return correct false for older config.php values defined as a string 'false'. function isTrue($val) { - return ($val == false || $val === 'false') ? false : true; + return (defined($val) && constant($val) === true); } // ttValidString is used to check user input to validate a string. @@ -197,6 +182,15 @@ function ttValidString($val, $emptyValid = false) return true; } +// ttValidTemplateText is used to check template-based user input. +// When templates are used, required input parts must be filled by user. +// We identify these parts by 3 "stop sign" emojis (aka "octagonal sign" U+1F6D1). +function ttValidTemplateText($val) +{ + $valid = strpos($val, '🛑🛑🛑') === false; // no 3 "stop sign" emojis in a row. + return $valid; +} + // ttValidEmail is used to check user input to validate an email string. function ttValidEmail($val, $emptyValid = false) { @@ -241,7 +235,7 @@ function ttValidFloat($val, $emptyValid = false) return ($emptyValid ? true : false); global $user; - $decimal = $user->decimal_mark; + $decimal = $user->getDecimalMark(); if (!preg_match('/^-?[0-9'.$decimal.']+$/', $val)) return false; @@ -323,22 +317,112 @@ function ttValidCronSpec($val) return true; } -// ttAccessCheck is used to check whether user is allowed to proceed. This function is used -// as an initial check on all publicly available pages. -function ttAccessCheck($required_rights) +// ttValidCondition is used to check user input to validate a notification condition. +function ttValidCondition($val, $emptyValid = true) +{ + $val = trim($val); + if (strlen($val) == 0) + return ($emptyValid ? true : false); + + // String must not be XSS evil (to insert JavaScript). + if (stristr($val, '