X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Ffilters.php;h=e5120cb50ffef667bc390fc2dca5b04b004f1662;hb=df4166450ac4788f58931bd5d30c617432a63f9d;hp=ecfa95f2698085585572c575bb5853e39f468f35;hpb=12cb1277f6f069b1cf9d536f9add2cd7e62eace4;p=mailer.git diff --git a/inc/filters.php b/inc/filters.php index ecfa95f269..e5120cb50f 100644 --- a/inc/filters.php +++ b/inc/filters.php @@ -355,6 +355,9 @@ function FILTER_INIT_RANDOMIZER () { // Take a prime number which is long (if you know a longer one please try it out!) setConfigEntry('_PRIME', 591623); + // Initialize array with all allowed chars + $GLOBALS['_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,1,2,3,4,6,7,8,9,-,+,_,/,.'); + // Only execute this filter if installed if ((!isInstalled()) || (!isExtensionInstalledAndNewer('other', '0.2.5'))) { // Set missing entry @@ -367,9 +370,6 @@ function FILTER_INIT_RANDOMIZER () { // Simply init the randomizer with seed and _ADD value mt_srand(generateSeed() + getConfig('_ADD')); - - // Initialize array with all allowed chars - $GLOBALS['_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,1,2,3,4,6,7,8,9,-,+,_,/,.'); } // Filter for removing updates @@ -557,7 +557,7 @@ function FILTER_COMPILE_EXPRESSION_CODE ($filterData) { $filterData = call_user_func($etiFunction, $data); } else { // Unsupported command detected - logDebugMessage(__FUNCTION__, __LINE__, 'eti=' . $eti . ', callback=' . $callback . ', extra=' . $extraFunction . ' - unsupported'); + logDebugMessage(__FUNCTION__, __LINE__, 'eti=' . $eti . ',etiFunction=' . $etiFunction . ',callback=' . $callback . ',extraFunction=' . $extraFunction . ',extraFunction2=' . $extraFunction2 . ' - UNSUPPORTED'); } } // END - foreach } // END - if @@ -863,7 +863,10 @@ function FILTER_CHECK_ADMIN_ACL () { // Init random number/cache buster function FILTER_INIT_RANDOM_NUMBER () { // Is the extension ext-sql_patches installed and at least 0.3.6? - if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && (isExtensionInstalledAndNewer('other', '0.2.5'))) { + if (isSessionVariableSet('random_number')) { + // Then set it + setConfigEntry('RAND_NUMBER', getSession('random_number')); + } elseif ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && (isExtensionInstalledAndNewer('other', '0.2.5'))) { // Generate random number setConfigEntry('RAND_NUMBER', generateRandomCode(10, mt_rand(10000, 99999), getMemberId(), '')); } else { @@ -871,6 +874,9 @@ function FILTER_INIT_RANDOM_NUMBER () { setConfigEntry('RAND_NUMBER', mt_rand(1000000, 9999999)); } + // Set it in session for faster script execusion + setSession('random_number', getConfig('RAND_NUMBER')); + // Copy it to CACHE_BUSTER setConfigEntry('CACHE_BUSTER', getConfig('RAND_NUMBER')); } @@ -1253,7 +1259,7 @@ function FILTER_INIT_SESSION ($filterData) { // Filter for sending "build mail" to admin function FILTER_SEND_BUILD_MAIL ($filterData) { // Was one line updated? - if ($filterData['affected'] > 0) { + if (($filterData['affected'] > 0) || (isDebugBuildMailsEnabled())) { // Then call the proper function call_user_func_array('sendGenericBuildMails', $filterData); } // END - if @@ -1303,23 +1309,29 @@ function FILTER_HANDLE_REFERRER_BANNER_VIEW ($filterData) { // Redirect redirectToUrl($data['url'], FALSE); - } else { - // @TODO No banner found, output some default banner - logDebugMessage(__FUNCTION__, __LINE__, 'Banner ' . bigintval(getRequestElement('banner')) . ' not dound.'); - } + } // END - if + + // @TODO No banner found, output some default banner + logDebugMessage(__FUNCTION__, __LINE__, 'Banner ' . bigintval(getRequestElement('banner')) . ' not found.'); // Free memory SQL_FREERESULT($result); - } else { - // Do nothing for now - redirectToUrl('modules.php?module=index'); - } + } // END - if + + // Do nothing for now + redirectToUrl('modules.php?module=index'); } // Filter for redirecting on wrong server name (e.g. bad.your-server.tld will be redirected to your-server.tld) function FILTER_REDIRECT_WRONG_SERVER_NAME ($filterData) { + // Get URL + $url = getUrl(); + // Is the configured URL same as SERVER_NAME? - if (extractHostnameFromUrl(getUrl()) != detectServerName()) { + if (extractHostnameFromUrl($url) != detectServerName()) { + // Log all attempts + logWrongServerNameRedirect(); + // Then redirect to configured URL redirectToRequestUri(); } // END - if @@ -1328,5 +1340,39 @@ function FILTER_REDIRECT_WRONG_SERVER_NAME ($filterData) { return $filterData; } +// Filter for adding hidden session id +function FILTER_ADD_INPUT_HIDDEN_SESSION_ID ($filterData) { + // Is a spider detected? + if ((!isSpider()) && (!isSessionValid()) && ($filterData['__form_method'] == 'get')) { + // No, then add the hidden field + $filterData['__replacer'] .= ''; + } // END - if + + // Return filter data + return $filterData; +} + +// Filter for purging old SERVER_NAME entries +function FILTER_SERVER_NAME_EXTRA_AUTOPURGE ($filterData) { + // Is purging configured? + if ((isApServerNameEnabled()) && (getApServerNameSince() > 0)) { + // Then start purging + SQL_QUERY('DELETE LOW_PRIORITY FROM + `{?_MYSQL_PREFIX?}_server_name_log` +WHERE + (UNIX_TIMESTAMP() - UNIX_TIMESTAMP(`server_name_added`)) >= {?ap_server_name_since?}', + __FILE__, __LINE__); + + // Are some entries deleted? + if (SQL_AFFECTEDROWS() > 0) { + // Okay, then send an email to the admin + sendAdminNotification('{--ADMIN_PURGE_USER_SERVER_NAME_LOG_SUBJECT--}', 'admin_purge_user_server_name_log', SQL_AFFECTEDROWS()); + } // END - if + } // END - if + + // Return filter data + return $filterData; +} + // [EOF] ?>