0 && isset($_COOKIE[COOKIE_PASSWORD]) && strlen($_COOKIE[COOKIE_PASSWORD]) > 0) { //Log::Add('Initialize/VerifyLoggedIn', "Cookie ".COOKIE_USERNAME." and ".COOKIE_PASSWORD." exists with values $_COOKIE[COOKIE_USERNAME] and $_COOKIE[COOKIE_PASSWORD]"); $userManager = new UserManager(); if ($userManager->Authenticate($_COOKIE[COOKIE_USERNAME], $_COOKIE[COOKIE_PASSWORD], true)) { //Log::Add('Initialize/VerifyLoggedIn', "Successful authentication ".COOKIE_USERNAME.' '.COOKIE_PASSWORD); $username = $_COOKIE[COOKIE_USERNAME]; $password = $_COOKIE[COOKIE_PASSWORD]; $_SESSION[SESSION_USERNAME] = $username; $cookieExpireTime = time() + 60 * 60 * 24 * 2; setcookie(COOKIE_USERNAME, $username, $cookieExpireTime); setcookie(COOKIE_PASSWORD, $password, $cookieExpireTime); } else { } } } public static function IsUserLoggedIn() { return (isset($_SESSION[SESSION_USERNAME]) && strlen($_SESSION[SESSION_USERNAME]) > 0); } public static function GetLoggedInUser() { if (Misc::IsUserLoggedIn()) { $userManager = new UserManager(); $user = $userManager->GetUserByUserName($_SESSION[SESSION_USERNAME]); return $user; } else { return null; } } public static function IsUrlActual($urls) { foreach ($urls as $url) { $actual = Misc::CurrentURL(); $actUrlLen = strlen($actual); $urlLen = strlen($url); if ($urlLen==0 && $actUrlLen==0) { return true; } if ($urlLen > $actUrlLen) { break; } if (!(strstr($actual, $url) === false)) { return true; } } return false; } public static function IsUrlActual2($urls) { foreach ($urls as $url) { // If the first character is / remove it if (strncmp('/', $url, 1) == 0) { $url = substr($url, 1, strlen($url)); } $actual = $_SERVER["REQUEST_URI"]; $actUrlLen = strlen($actual); $urlLen = strlen($url); if ($urlLen > $actUrlLen) { break; } $startPos = $actUrlLen - $urlLen; // Example: // /v2/asdf.php length = 12 // asdf.php length = 8 // ^ startpos = 4 if (substr_compare($actual, $url, $actUrlLen - $urlLen, $urlLen, true) === 0) { return true; } } return false; } // If the url is actual it writes the given string public static function MarkMenuActual($urls, $string) { if (Misc::IsUrlActual($urls)) { echo($string); } } public static function ToHexUml($origStr) { $origStr = str_replace('á', 'á', $origStr); $origStr = str_replace('é', 'é', $origStr); $origStr = str_replace('í', 'í', $origStr); $origStr = str_replace('ó', 'ó', $origStr); $origStr = str_replace('ö', 'ö', $origStr); $origStr = str_replace('ő', 'ő', $origStr); $origStr = str_replace('ú', 'ú', $origStr); $origStr = str_replace('ü', 'ü', $origStr); $origStr = str_replace('ű', 'ű', $origStr); $origStr = str_replace('Á', 'Á', $origStr); $origStr = str_replace('É', 'É', $origStr); $origStr = str_replace('Í', 'Í', $origStr); $origStr = str_replace('Ó', 'Ó', $origStr); $origStr = str_replace('Ö', 'Ö', $origStr); $origStr = str_replace('Ő', 'Ő', $origStr); $origStr = str_replace('Ú', 'Ú', $origStr); $origStr = str_replace('Ü', 'Ü', $origStr); $origStr = str_replace('Ű', 'Ű', $origStr); $origStr = str_replace('"', '"', $origStr); $origStr = str_replace('\'', ''', $origStr); $origStr = str_replace('`', ''', $origStr); return $origStr; } public static function SanitizeComment($text) { $text = strip_tags($text, '
'); $text = Misc::NewLine2Br($text, 4); $text = Misc::ToHexUml($text); return $text; } public static function EmailValid($email) { Log::Add('EmailValid', 'Validating: '.$email); if (eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,3}$", $email)) { Log::Add('EmailValid', 'Email is valid'); return true; } else { Log::Add('EmailValid', 'Email is NOT valid'); return false; } } public static function IsUsernameValid($username) { Log::Add('IsUsernameValid', 'Validating: '.$username); if (eregi("^[a-zA-Z0-9\._]*$", $username)) { Log::Add('IsUsernameValid', 'Username is valid'); return true; } else { Log::Add('IsUsernameValid', 'Username is NOT valid'); return false; } } /** * Creating directories recursively * * @param string $dirName * @param octal $rights, see chmod manual * for more see http://www.phptrivandrum.org */ public static function MakeDir($dirName, $rights=0777) { $dirs = explode('/', $dirName); $dir = ''; foreach ($dirs as $part) { $dir .= $part.'/'; if (!is_dir($dir) && strlen($dir)>0) { mkdir($dir, $rights); } } } public static function CurrentURL() { if (!isset($_SERVER['REQUEST_URI'])) { $_SERVER['REQUEST_URI'] = substr($_SERVER['PHP_SELF'], 0); if (isset($_SERVER['QUERY_STRING']) AND $_SERVER['QUERY_STRING'] != '') { $_SERVER['REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING']; } } $url = 'http'; if ($_SERVER["HTTPS"] == "on") { $url .= "s"; } $url .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $url .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $url .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } return Misc::Escape($url); } // Returns the beginning of a string until the first occurence of $needle public static function ReverseStringSearch($haystack, $needle) { return substr(strrev(strstr(strrev($haystack), strrev($needle))), 0, -strlen($needle)); } // [Obsolete('Use Dropdown control instead')] public static function CreateCombo($comboName, $tableName, $idColumnName, $valueColumnName, $orderByColumnName, $empty, $emptyatend, $selectedValue, $cssstyle) { $query = "SELECT `$idColumnName`, `$valueColumnName` FROM `".$tableName.'` ORDER BY `'.$orderByColumnName.'`'; // Log::Add('CreateCombo', $query); $context = NewADOConnection("mysql://".DB_USERNAME.":".DB_PASSWORD."@".DB_HOST."/".DB_INITIAL_DATABASE."?persist"); $items = $context->GetAll($query); if($items) { $stylestring = ''; if (strlen($cssstyle)) { $stylestring = " style=\"$cssstyle\" "; } $result = ''; return $result; } else { return ''; } } public static function Escape($value) { $value = str_replace('&', '&', $value); return $value; } public static function GetSiteContent($url) { $curl = curl_init(); // Setup headers - I used the same headers from Firefox version 2.0.0.6 // below was split up because php.net said the line was too long. :/ $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,"; $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; $header[] = "Cache-Control: max-age=0"; $header[] = "Connection: keep-alive"; $header[] = "Keep-Alive: 300"; $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; $header[] = "Accept-Language: en-us,en;q=0.5"; $header[] = "Pragma: "; // browsers keep this blank. curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)'); curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com'); curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); curl_setopt($curl, CURLOPT_AUTOREFERER, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_TIMEOUT, 10); $html = curl_exec($curl); // execute the curl command curl_close($curl); // close the connection return $html; // and finally, return $html } /* Converts special characters in a string to _ */ public static function NormalizeString($originalString) { $originalString = str_replace(' ', '_', $originalString); $originalString = str_replace('-', '_', $originalString); $originalString = str_replace('+', '_', $originalString); $originalString = str_replace('=', '_', $originalString); $originalString = str_replace('?', '_', $originalString); $originalString = str_replace('\'', '_', $originalString); $originalString = str_replace('"', '_', $originalString); $originalString = str_replace('*', '_', $originalString); $originalString = str_replace('!', '_', $originalString); $originalString = str_replace('ä', 'a', $originalString); return $originalString; } public function GetKeyPositionInArray($haystack, $keyNeedle) { $i = 0; foreach($haystack as $key => $value) { if($key == $keyNeedle) { return $i; } $i++; } return -1; } public static function GetErrorInputsString() { $result = ''; if (isset($_SESSION[SESSION_ERRORINPUTS])) { $errors = $_SESSION[SESSION_ERRORINPUTS]; if ($errors != null && count($errors) > 0) { $result .= "
    \n"; foreach($errors as $key => $error) { $result .= "
  • $error
  • \n"; } $result .= '
'; } } return $result; } public static function GetRealIpAddress() { $ip = '127.0.0.1'; // Check ip from share internet if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } else { // Check ip is pass from proxy if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip = $_SERVER['REMOTE_ADDR']; } } return $ip; } public static function NewLine2Br($string, $num) { $dirty = preg_replace('/\r/', '', $string); $clean = preg_replace('/\n{'.$num.',}/', str_repeat('
', $num), $dirty); $clean = preg_replace('/\n/', '
', $clean); return $clean; } public static function CurrentDate() { return mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")); } // Accepts a date public static function FormattedDate($date) { return date('Y-m-d H:i:s', $date); } // Accepts a date string public static function FormattedDateRo($date) { return date('d/m/Y H:i', strtotime($date)); } public static function CurrentDateFormatted() { return Misc::FormattedDate(Misc::CurrentDate()); } public static function ObfuscateEmail($email) { $length = strlen($email); for ($i = 0; $i < $length; $i++) { $obfuscatedEmail .= "&#" . ord($email[$i]).";"; } return $obfuscatedEmail; } public static function WhitespaceToUnderscore($original) { $original = str_replace(' ', '_', $original); $original = str_replace("'", '_', $original); $original = str_replace('"', '_', $original); return strtolower($original); } } ?>