mirror of
https://github.com/WhatCD/Gazelle.git
synced 2024-12-15 03:46:25 +00:00
f76e290493
Allow FLS to assign to staff or forum staff Allow FLS to unresolve all FLS PMs empty commit (testing debug site) empty commit (again) Permissions can only be created up to your current level Permissions can only be altered up to your current level Image proxy should function correctly with SSL now Forums can only be altered up to your current level Adding option to delete polls Remove ghost resolver bug Fixing autocomplete escpaing improved .gitignore Adding debug to all ajax pages Fixed escaping on autocomplete pages
113 lines
3.6 KiB
PHP
113 lines
3.6 KiB
PHP
<?
|
|
require 'config.php'; //The config contains all site wide configuration information as well as memcached rules
|
|
require(SERVER_ROOT.'/classes/class_debug.php');
|
|
require(SERVER_ROOT.'/classes/class_cache.php'); //Require the caching class
|
|
require(SERVER_ROOT.'/classes/class_encrypt.php'); //Require the caching class
|
|
|
|
$Debug = new DEBUG;
|
|
$Cache = NEW CACHE; //Load the caching class
|
|
$Enc = NEW CRYPT; //Load the encryption class
|
|
|
|
$SSL = ($_SERVER['SERVER_PORT'] === '443');
|
|
|
|
if (isset($_COOKIE['session'])) { $LoginCookie=$Enc->decrypt($_COOKIE['session']); }
|
|
if(isset($LoginCookie)) {
|
|
list($SessionID, $UserID)=explode("|~|",$Enc->decrypt($LoginCookie));
|
|
|
|
if(!$UserID || !$SessionID) {
|
|
die('Not logged in!');
|
|
}
|
|
|
|
if(!$Enabled = $Cache->get_value('enabled_'.$UserID)){
|
|
require(SERVER_ROOT.'/classes/class_mysql.php'); //Require the database wrapper
|
|
$DB=NEW DB_MYSQL; //Load the database wrapper
|
|
$DB->query("SELECT Enabled FROM users_main WHERE ID='$UserID'");
|
|
list($Enabled) = $DB->next_record();
|
|
$Cache->cache_value('enabled_'.$UserID, $Enabled, 0);
|
|
}
|
|
} else {
|
|
die('Not logged in!');
|
|
}
|
|
|
|
function error($Error) {
|
|
die($Error);
|
|
}
|
|
|
|
function is_number($Str) {
|
|
if ($Str < 0) { return false; }
|
|
// We're converting input to a int, then string and comparing to original
|
|
return ($Str == strval(intval($Str)) ? true : false);
|
|
}
|
|
|
|
function display_str($Str) {
|
|
if ($Str!="") {
|
|
$Str=make_utf8($Str);
|
|
$Str=mb_convert_encoding($Str,"HTML-ENTITIES","UTF-8");
|
|
$Str=preg_replace("/&(?![A-Za-z]{0,4}\w{2,3};|#[0-9]{2,5};)/m","&",$Str);
|
|
|
|
$Replace = array(
|
|
"'",'"',"<",">",
|
|
'€','‚','ƒ','„','…','†','‡','ˆ','‰','Š','‹','Œ','Ž','‘','’','“','”','•','–','—','˜','™','š','›','œ','ž','Ÿ'
|
|
);
|
|
|
|
$With=array(
|
|
''','"','<','>',
|
|
'€','‚','ƒ','„','…','†','‡','ˆ','‰','Š','‹','Œ','Ž','‘','’','“','”','•','–','—','˜','™','š','›','œ','ž','Ÿ'
|
|
);
|
|
|
|
$Str=str_replace($Replace,$With,$Str);
|
|
}
|
|
return $Str;
|
|
}
|
|
|
|
function make_utf8($Str) {
|
|
if ($Str!="") {
|
|
if (is_utf8($Str)) { $Encoding="UTF-8"; }
|
|
if (empty($Encoding)) { $Encoding=mb_detect_encoding($Str,'UTF-8, ISO-8859-1'); }
|
|
if (empty($Encoding)) { $Encoding="ISO-8859-1"; }
|
|
if ($Encoding=="UTF-8") { return $Str; }
|
|
else { return @mb_convert_encoding($Str,"UTF-8",$Encoding); }
|
|
}
|
|
}
|
|
|
|
function is_utf8($Str) {
|
|
return preg_match('%^(?:
|
|
[\x09\x0A\x0D\x20-\x7E] // ASCII
|
|
| [\xC2-\xDF][\x80-\xBF] // non-overlong 2-byte
|
|
| \xE0[\xA0-\xBF][\x80-\xBF] // excluding overlongs
|
|
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} // straight 3-byte
|
|
| \xED[\x80-\x9F][\x80-\xBF] // excluding surrogates
|
|
| \xF0[\x90-\xBF][\x80-\xBF]{2} // planes 1-3
|
|
| [\xF1-\xF3][\x80-\xBF]{3} // planes 4-15
|
|
| \xF4[\x80-\x8F][\x80-\xBF]{2} // plane 16
|
|
)*$%xs', $Str
|
|
);
|
|
}
|
|
|
|
function display_array($Array, $DontEscape = array()) {
|
|
foreach ($Array as $Key => $Val) {
|
|
if(!in_array($Key, $DontEscape)) {
|
|
$Array[$Key] = display_str($Val);
|
|
}
|
|
}
|
|
return $Array;
|
|
}
|
|
|
|
function make_secret($Length = 32) {
|
|
$Secret = '';
|
|
$Chars='abcdefghijklmnopqrstuvwxyz0123456789';
|
|
for($i=0; $i<$Length; $i++) {
|
|
$Rand = mt_rand(0, strlen($Chars)-1);
|
|
$Secret .= substr($Chars, $Rand, 1);
|
|
}
|
|
return str_shuffle($Secret);
|
|
}
|
|
|
|
// Send a message to an IRC bot listening on SOCKET_LISTEN_PORT
|
|
function send_irc($Raw) {
|
|
$IRCSocket = fsockopen(SOCKET_LISTEN_ADDRESS, SOCKET_LISTEN_PORT);
|
|
$Raw = str_replace(array("\n", "\r"), '', $Raw);
|
|
fwrite($IRCSocket, $Raw);
|
|
fclose($IRCSocket);
|
|
}
|