X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Ffunctions.php;h=e255045bb0f459f463401a1a8cc05877383636b2;hp=1fa43f7be0d61c60eb10a7ebeb8d3a7837e8efbd;hb=4bd12d7c844163f67cca3489aa0b6c9af61d8adb;hpb=ed9e95a268dbaea932b703fe4e8653615befcc27
diff --git a/inc/functions.php b/inc/functions.php
index 1fa43f7be0..e255045bb0 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -38,7 +38,7 @@ if (!defined('__SECURITY')) {
}
// Check if our config file is writeable or not
-function is_INCWritable($inc) {
+function IS_INC_WRITEABLE($inc) {
// Generate FQFN
$fqfn = sprintf("%sinc/%s.php", PATH, $inc);
@@ -233,8 +233,12 @@ function LOAD_TEMPLATE($template, $return=false, $content=array()) {
$template = strtolower($template);
// Count the template load
- if (!isset($_CONFIG['num_templates'])) $_CONFIG['num_templates'] = 0;
- $_CONFIG['num_templates']++;
+ incrementConfigEntry('num_templates');
+
+ // Prepare IP number and User Agent
+ $REMOTE_ADDR = GET_REMOTE_ADDR();
+ if (!defined('REMOTE_ADDR')) define('REMOTE_ADDR', $REMOTE_ADDR);
+ $HTTP_USER_AGENT = GET_USER_AGENT();
// Init some data
$ret = "";
@@ -243,13 +247,13 @@ function LOAD_TEMPLATE($template, $return=false, $content=array()) {
// @DEPRECATED Try to rewrite the if() condition
if ($template == "member_support_form") {
// Support request of a member
- $result = SQL_QUERY_ESC("SELECT userid, gender, surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
+ $result = SQL_QUERY_ESC("SELECT userid, gender, surname, family, email FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1",
array($GLOBALS['userid']), __FILE__, __LINE__);
// Is content an array?
if (is_array($content)) {
// Merge data
- $content = array_merge($content, SQL_FETCHARRAY($result));
+ $content = merge_array($content, SQL_FETCHARRAY($result));
// Translate gender
$content['gender'] = TRANSLATE_GENDER($content['gender']);
@@ -334,7 +338,7 @@ function LOAD_TEMPLATE($template, $return=false, $content=array()) {
$tmpl_file = implode("", file($file));
// Replace ' to our own chars to preventing them being quoted
- while (strpos($tmpl_file, "\'") !== false) { $tmpl_file = str_replace("\'", '{QUOT}', $tmpl_file); }
+ while (strpos($tmpl_file, "'") !== false) { $tmpl_file = str_replace("'", '{QUOT}', $tmpl_file); }
// Do we have to compile the code?
$ret = "";
@@ -397,7 +401,7 @@ function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML = "N", $FROM = "") {
return;
} else {
// Load email address
- $result_email = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1", array(bigintval($TO)), __FILE__, __LINE__);
+ $result_email = SQL_QUERY_ESC("SELECT email FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1", array(bigintval($TO)), __FILE__, __LINE__);
//* DEBUG: */ print __FUNCTION__."(".__LINE__."):numRows=".SQL_NUMROWS($result_email)."
\n";
// Does the user exist?
@@ -450,15 +454,12 @@ function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML = "N", $FROM = "") {
if (empty($HTML)) $HTML = "N";
if (isBooleanConstantAndTrue('DEBUG_MODE')) {
// In debug mode we want to display the mail instead of sending it away so we can debug this part
- echo "
+ print("
".htmlentities(trim($FROM))."
To : ".$TO."
Subject : ".$SUBJECT."
Message : ".$MSG."
-
\n";
-
- // Log the mail away
- if (defined('DEBUG_MAIL')) DEBUG_LOG(__FUNCTION__, __LINE__, "to={$TO},subject={$SUBJECT},msg={$MSG}");
+
\n");
} elseif (($HTML == "Y") && (EXT_IS_ACTIVE("html_mail"))) {
// Send mail as HTML away
SEND_HTML_EMAIL($TO, $SUBJECT, $MSG, $FROM);
@@ -525,9 +526,9 @@ function SEND_RAW_EMAIL ($to, $subject, $msg, $from) {
//
// Generate a password in a specified length or use default password length
-function GEN_PASS($LEN = 0) {
- global $_CONFIG;
- if ($LEN == 0) $LEN = $_CONFIG['pass_len'];
+function GEN_PASS ($LEN = 0) {
+ // Auto-fix invalid length of zero
+ if ($LEN == 0) $LEN = getConfig('pass_len');
// Initialize array with all allowed chars
$ABC = explode(",", "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9,-,+,_,/");
@@ -594,10 +595,10 @@ function TRANSLATE_COMMA ($dotted, $cut=true, $max=0) {
global $_CONFIG;
// Default is 3 you can change this in admin area "Misc -> Misc Options"
- if (empty($_CONFIG['max_comma'])) $_CONFIG['max_comma'] = "3";
+ if (getConfig('max_comma') == null) $_CONFIG['max_comma'] = "3";
// Use from config is default
- $maxComma = $_CONFIG['max_comma'];
+ $maxComma = getConfig('max_comma');
// Use from parameter?
if ($max > 0) $maxComma = $max;
@@ -743,8 +744,6 @@ function GET_LANGUAGE() {
}
//
function SET_LANGUAGE($lang) {
- global $_CONFIG;
-
// Accept only first 2 chars!
$lang = substr(SQL_ESCAPE(strip_tags($lang)), 0, 2);
@@ -753,7 +752,7 @@ function SET_LANGUAGE($lang) {
}
//
function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") {
- global $DATA, $_CONFIG, $REPLACER;
+ global $DATA, $REPLACER;
// Make sure all template names are lowercase!
$template = strtolower($template);
@@ -774,7 +773,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") {
// Is the admin logged in?
if (IS_ADMIN()) {
// Get admin id
- $aid = GET_ADMIN_ID(get_session('admin_login'));
+ $aid = GET_CURRENT_ADMIN_ID();
// Load Admin data
$ADMIN = GET_ADMIN_EMAIL($aid);
@@ -784,15 +783,15 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") {
$email = WEBMASTER;
// Expiration in a nice output format
- if ($_CONFIG['auto_purge'] == 0) {
+ if (getConfig('auto_purge') == 0) {
// Will never expire!
$EXPIRATION = MAIL_WILL_NEVER_EXPIRE;
} elseif (function_exists('CREATE_FANCY_TIME')) {
// Create nice date string
- $EXPIRATION = CREATE_FANCY_TIME($_CONFIG['auto_purge']);
+ $EXPIRATION = CREATE_FANCY_TIME(getConfig('auto_purge'));
} else {
// Display days only
- $EXPIRATION = round($_CONFIG['auto_purge']/60/60/24)." "._DAYS;
+ $EXPIRATION = round(getConfig('auto_purge')/60/60/24)." "._DAYS;
}
// Is content an array?
@@ -802,28 +801,25 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") {
} // END - if
// Load user's data
- //* DEBUG: */ print __FUNCTION__."(".__LINE__."):UID={$UID},template={$template}
\n";
- if ($UID > 0) {
+ //* DEBUG: */ print __FUNCTION__."(".__LINE__."):UID={$UID},template={$template},content[]=".gettype($content)."
\n";
+ if (($UID > 0) && (is_array($content))) {
+ // If nickname extension is installed, fetch nickname as well
if (EXT_IS_ACTIVE("nickname")) {
//* DEBUG: */ print __FUNCTION__."(".__LINE__."):NICKNAME!
\n";
// Load nickname
- $result = SQL_QUERY_ESC("SELECT surname, family, gender, email, nickname FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
+ $result = SQL_QUERY_ESC("SELECT surname, family, gender, email, nickname FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1",
array(bigintval($UID)), __FILE__, __LINE__);
} else {
//* DEBUG: */ print __FUNCTION__."(".__LINE__."):NO-NICK!
\n";
/// Load normal data
- $result = SQL_QUERY_ESC("SELECT surname, family, gender, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
+ $result = SQL_QUERY_ESC("SELECT surname, family, gender, email FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1",
array(bigintval($UID)), __FILE__, __LINE__);
}
- // Is content an array?
- //* DEBUG: */ print __FUNCTION__."(".__LINE__."):content[]=".gettype($content)."
\n";
- if (is_array($content)) {
- // Fetch and migrate data
- //* DEBUG: */ print __FUNCTION__."(".__LINE__."):content()=".count($content)." - PRE
\n";
- $content = array_merge($content, SQL_FETCHARRAY($result));
- //* DEBUG: */ print __FUNCTION__."(".__LINE__."):content()=".count($content)." - AFTER
\n";
- } // END - if
+ // Fetch and merge data
+ //* DEBUG: */ print __FUNCTION__."(".__LINE__."):content()=".count($content)." - PRE
\n";
+ $content = merge_array($content, SQL_FETCHARRAY($result));
+ //* DEBUG: */ print __FUNCTION__."(".__LINE__."):content()=".count($content)." - AFTER
\n";
// Free result
SQL_FREERESULT($result);
@@ -833,7 +829,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") {
if (isset($content['gender'])) $content['gender'] = TRANSLATE_GENDER($content['gender']);
// Overwrite email from data if present
- if (isset($content['email'])) $email = $content['email'];
+ if (isset($content['email'])) $email = $content['email'];
// Store email for some functions in global data array
$DATA['email'] = $email;
@@ -921,7 +917,7 @@ function MAKE_TIME($H, $M, $S, $stamp) {
}
//
function LOAD_URL($URL, $addUrlData=true) {
- global $CSS, $_CONFIG, $footer;
+ global $CSS, $footer;
// Compile out URI codes
$URL = COMPILE_CODE($URL);
@@ -944,7 +940,7 @@ function LOAD_URL($URL, $addUrlData=true) {
if (((!defined('__COOKIES')) || (!__COOKIES)) && ($addUrlData)) $URL = ADD_URL_DATA($URL);
// Probe for bot from search engine
- if ((eregi("spider", GET_USER_AGENT())) || (eregi("bot", GET_USER_AGENT())) || (eregi("spider", GET_USER_AGENT()))) {
+ if ((eregi("spider", GET_USER_AGENT())) || (eregi("bot", GET_USER_AGENT()))) {
// Search engine bot detected so let's rewrite many chars for the link
$URL = htmlentities(strip_tags($URL), ENT_QUOTES);
@@ -998,7 +994,7 @@ function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) {
} // END - foreach
// But shall I keep simple quotes for later use?
- if ($simple) $code = str_replace("\'", '{QUOT}', $code);
+ if ($simple) $code = str_replace("'", '{QUOT}', $code);
// Find $content[bla][blub] entries
@preg_match_all('/\$(content|DATA)((\[([a-zA-Z0-9-_]+)\])*)/', $code, $matches);
@@ -1103,7 +1099,7 @@ function array_pk_sort(&$array, $a_sort, $primary_key = 0, $order = -1, $nums =
}
//
function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0") {
- global $MONTH_DESCR, $_CONFIG;
+ global $MONTH_DESCR;
$OUT = "";
if ($type == "yn") {
@@ -1142,7 +1138,7 @@ function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0") {
// Use configured min age or fixed?
if (GET_EXT_VERSION("other") >= "0.2.1") {
// Configured
- $startYear = $YEAR - $_CONFIG['min_age'];
+ $startYear = $YEAR - getConfig('min_age');
} else {
// Fixed 16 years
$startYear = $YEAR - 16;
@@ -1170,7 +1166,7 @@ function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0") {
// Calculate earliest year depending on extension version
if (GET_EXT_VERSION("other") >= "0.2.1") {
// Use configured minimum age
- $YEAR = date('Y', time()) - $_CONFIG['min_age'];
+ $YEAR = date('Y', time()) - getConfig('min_age');
} else {
// Use fixed 16 years age
$YEAR = date('Y', time()) - 16;
@@ -1220,8 +1216,8 @@ function TRANSLATE_YESNO($yn)
{
switch ($yn)
{
- case 'Y': $yn = YES; break;
- case 'N': $yn = NO; break;
+ case "Y": $yn = YES; break;
+ case "N": $yn = NO; break;
default : $yn = "??? (".$yn.")"; break;
}
return $yn;
@@ -1231,8 +1227,6 @@ function TRANSLATE_YESNO($yn)
// Optional : $DATA
//
function GEN_RANDOM_CODE($length, $code, $uid, $DATA="") {
- global $_CONFIG;
-
// Fix missing _MAX constant
if (!defined('_MAX')) define('_MAX', 15235);
@@ -1241,10 +1235,10 @@ function GEN_RANDOM_CODE($length, $code, $uid, $DATA="") {
// Build key string
$keys = SITE_KEY.":".DATE_KEY;
- if (isset($_CONFIG['secret_key'])) $keys .= ":".$_CONFIG['secret_key'];
- if (isset($_CONFIG['file_hash'])) $keys .= ":".$_CONFIG['file_hash'];
- $keys .= ":".date("d-m-Y (l-F-T)", bigintval($_CONFIG['patch_ctime']));
- if (isset($_CONFIG['master_salt'])) $keys .= ":".$_CONFIG['master_salt'];
+ if (getConfig('secret_key') != null) $keys .= ":".getConfig('secret_key');
+ if (getConfig('file_hash') != null) $keys .= ":".getConfig('file_hash');
+ $keys .= ":".date("d-m-Y (l-F-T)", bigintval(getConfig('patch_ctime')));
+ if (getConfig('master_salt') != null) $keys .= ":".getConfig('master_salt');
// Build string from misc data
$data = $code.":".$uid.":".$DATA;
@@ -1260,12 +1254,12 @@ function GEN_RANDOM_CODE($length, $code, $uid, $DATA="") {
// Calculate number for generating the code
$a = $code + _ADD - 1;
- if (isset($_CONFIG['master_hash'])) {
+ if (getConfig('master_hash') != null) {
// Generate hash with master salt from modula of number with the prime number and other data
- $saltedHash = generateHash(($a % _PRIME).":".$server.":".$keys.":".$data.":".date("d-m-Y (l-F-T)", time()).":".$a, $_CONFIG['master_salt']);
+ $saltedHash = generateHash(($a % _PRIME).":".$server.":".$keys.":".$data.":".date("d-m-Y (l-F-T)", time()).":".$a, getConfig('master_salt'));
// Create number from hash
- $rcode = hexdec(substr($saltedHash, strlen($_CONFIG['master_salt']), 9)) / abs(_MAX - $a + sqrt(_ADD)) / pi();
+ $rcode = hexdec(substr($saltedHash, strlen(getConfig('master_salt')), 9)) / abs(_MAX - $a + sqrt(_ADD)) / pi();
} else {
// Generate hash with "hash of site key" from modula of number with the prime number and other data
$saltedHash = generateHash(($a % _PRIME).":".$server.":".$keys.":".$data.":".date("d-m-Y (l-F-T)", time()).":".$a, substr(sha1(SITE_KEY), 0, 8));
@@ -1275,7 +1269,7 @@ function GEN_RANDOM_CODE($length, $code, $uid, $DATA="") {
}
// At least 10 numbers shall be secure enought!
- $len = $_CONFIG['code_length'];
+ $len = getConfig('code_length');
if ($len == 0) $len = $length;
if ($len == 0) $len = 10;
@@ -1307,9 +1301,7 @@ function bigintval($num, $castValue = true) {
}
// Insert the code in $img_code into jpeg or PNG image
function GENERATE_IMAGE($img_code, $header=true) {
- global $_CONFIG;
-
- if ((strlen($img_code) > 6) || (empty($img_code)) || ($_CONFIG['code_length'] == 0)) {
+ if ((strlen($img_code) > 6) || (empty($img_code)) || (getConfig('code_length') == 0)) {
// Stop execution of function here because of over-sized code length
return;
} elseif (!$header) {
@@ -1318,10 +1310,10 @@ function GENERATE_IMAGE($img_code, $header=true) {
}
// Load image
- $img = sprintf("%s/theme/%s/images/code_bg.%s", PATH, GET_CURR_THEME(), $_CONFIG['img_type']);
+ $img = sprintf("%s/theme/%s/images/code_bg.%s", PATH, GET_CURR_THEME(), getConfig('img_type'));
if (FILE_READABLE($img)) {
// Switch image type
- switch ($_CONFIG['img_type'])
+ switch (getConfig('img_type'))
{
case "jpg":
// Okay, load image and hide all errors
@@ -1345,10 +1337,10 @@ function GENERATE_IMAGE($img_code, $header=true) {
imagestring($image, 5, 14, 2, $img_code, $text_color);
// Return to browser
- header ("Content-Type: image/".$_CONFIG['img_type']);
+ header ("Content-Type: image/".getConfig('img_type'));
// Output image with matching image factory
- switch ($_CONFIG['img_type']) {
+ switch (getConfig('img_type')) {
case "jpg": imagejpeg($image); break;
case "png": imagepng($image); break;
}
@@ -1357,38 +1349,44 @@ function GENERATE_IMAGE($img_code, $header=true) {
imagedestroy($image);
}
// Create selection box or array of splitted timestamp
-function CREATE_TIME_SELECTIONS($timestamp, $prefix="", $display="", $align="center", $return_array=false) {
- global $_CONFIG;
-
+function CREATE_TIME_SELECTIONS ($timestamp, $prefix="", $display="", $align="center", $return_array=false) {
// Calculate 2-seconds timestamp
$stamp = round($timestamp);
+ //* DEBUG: */ print("*".$stamp."/".$timestamp."*
");
// Do we have a leap year?
$SWITCH = 0;
$TEST = date('Y', time()) / 4;
$M1 = date("m", time());
- $M2 = date("m", (time() + $stamp));
+ $M2 = date("m", (time() + $timestamp));
// If so and if current time is before 02/29 and estimated time is after 02/29 then add 86400 seconds (one day)
- if ((floor($TEST) == $TEST) && ($M1 == "02") && ($M2 > "02")) $SWITCH = $_CONFIG['one_day'];
+ if ((floor($TEST) == $TEST) && ($M1 == "02") && ($M2 > "02")) $SWITCH = getConfig('one_day');
// First of all years...
- $Y = abs(floor($stamp / (31536000 + $SWITCH)));
+ $Y = abs(floor($timestamp / (31536000 + $SWITCH)));
+ //* DEBUG: */ print("Y={$Y}
\n");
// Next months...
- $M = abs(floor($stamp / 2628000 - $Y * 12));
+ $M = abs(floor($timestamp / 2628000 - $Y * 12));
+ //* DEBUG: */ print("M={$M}
\n");
// Next weeks
- $W = abs(floor($stamp / 604800 - $Y * ((365 + $SWITCH / $_CONFIG['one_day']) / 7) - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day']) / 7)));
+ $W = abs(floor($timestamp / 604800 - $Y * ((365 + $SWITCH / getConfig('one_day')) / 7) - ($M / 12 * (365 + $SWITCH / getConfig('one_day')) / 7)));
+ //* DEBUG: */ print("W={$W}
\n");
// Next days...
- $D = abs(floor($stamp / 86400 - $Y * (365 + $SWITCH / $_CONFIG['one_day']) - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day'])) - $W * 7));
+ $D = abs(floor($timestamp / 86400 - $Y * (365 + $SWITCH / getConfig('one_day')) - ($M / 12 * (365 + $SWITCH / getConfig('one_day'))) - $W * 7));
+ //* DEBUG: */ print("D={$D}
\n");
// Next hours...
- $h = abs(floor($stamp / 3600 - $Y * (365 + $SWITCH / $_CONFIG['one_day']) * 24 - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day']) * 24) - $W * 7 * 24 - $D * 24));
+ $h = abs(floor($timestamp / 3600 - $Y * (365 + $SWITCH / getConfig('one_day')) * 24 - ($M / 12 * (365 + $SWITCH / getConfig('one_day')) * 24) - $W * 7 * 24 - $D * 24));
+ //* DEBUG: */ print("h={$h}
\n");
// Next minutes..
- $m = abs(floor($stamp / 60 - $Y * (365 + $SWITCH / $_CONFIG['one_day']) * 24 * 60 - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day']) * 24 * 60) - $W * 7 * 24 * 60 - $D * 24 * 60 - $h * 60));
+ $m = abs(floor($timestamp / 60 - $Y * (365 + $SWITCH / getConfig('one_day')) * 24 * 60 - ($M / 12 * (365 + $SWITCH / getConfig('one_day')) * 24 * 60) - $W * 7 * 24 * 60 - $D * 24 * 60 - $h * 60));
+ //* DEBUG: */ print("m={$m}
\n");
// And at last seconds...
- $s = abs(floor($stamp - $Y * (365 + $SWITCH / $_CONFIG['one_day']) * 24 * 3600 - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day']) * 24 * 3600) - $W * 7 * 24 * 3600 - $D * 24 * 3600 - $h * 3600 - $m * 60));
+ $s = abs(floor($timestamp - $Y * (365 + $SWITCH / getConfig('one_day')) * 24 * 3600 - ($M / 12 * (365 + $SWITCH / getConfig('one_day')) * 24 * 3600) - $W * 7 * 24 * 3600 - $D * 24 * 3600 - $h * 3600 - $m * 60));
+ //* DEBUG: */ print("s={$s}
\n");
// Is seconds zero and time is < 60 seconds?
- if (($s == 0) && ($stamp < 60)) {
+ if (($s == 0) && ($timestamp < 60)) {
// Fix seconds
$s = round($timestamp);
} // END - if
@@ -1526,7 +1524,7 @@ function CREATE_TIME_SELECTIONS($timestamp, $prefix="", $display="", $align="cen
if (ereg("s", $display) || (empty($display))) {
// Generate second selection
$OUT .= " |