X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Flibs%2Fcache_functions.php;h=44df62bedea920e5cb094042077a2d09bdfc163a;hp=f3496a5ccb4f152aed76f2fac9e2d2c510583ad8;hb=ec5bcdd7331073503aff5742884785b2fdd498e3;hpb=4db052cce49f60b6d9cc0f1c06b95cdd99f904ad diff --git a/inc/libs/cache_functions.php b/inc/libs/cache_functions.php index f3496a5ccb..44df62bede 100644 --- a/inc/libs/cache_functions.php +++ b/inc/libs/cache_functions.php @@ -32,11 +32,11 @@ ************************************************************************/ // Some security stuff... -if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) -{ +if (!defined('__SECURITY')) { $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php"; require($INC); } + // Caching class class mxchange_cache { @@ -52,11 +52,14 @@ class mxchange_cache // Constructor function mxchange_cache($interval, $path, $tested) { + // Failed is the default + $this->ret = "failed"; + // Remember interval in class - $this->update_interval=$interval; + $this->update_interval = $interval; // Remeber path - $this->cache_path=$path; + $this->cache_path = $path; // Check if path exists if ((is_dir($path)) && (!$tested)) { @@ -72,22 +75,16 @@ class mxchange_cache UPDATE_CONFIG("cache_tested", 1); // All done! - return "done"; + $this->ret = "done"; } else { // Stop! Set a .htaccess file first - $this->ret="htaccess"; - return "htaccess"; + $this->ret = "htaccess"; } } } elseif ($tested) { // System already tested - $this->ret="done"; - return "done"; + $this->ret = "done"; } - - // Something goes wrong here! - $this->ret="failed"; - return "failed"; } function cache_file($file, $ignore_ctime=false) { @@ -155,7 +152,10 @@ class mxchange_cache if (($k == "ext_keep") && ($v == "Y")) { $cacheArray['active_extensions'][$data['ext_name']] = $v; } // END - if - } // END - if + } elseif (is_array($v)) { + // Serialize and BASE64-encode the array + $v = base64_encode(serialize($v)); + } // Write cache line to file @fwrite($this->cache_pointer, $this->add_raw_row($k, $v)); @@ -193,6 +193,7 @@ class mxchange_cache if (FILE_READABLE($this->cache_inc)) { // Prepare temporary array $data = array(); + $cache_version = null; // Load cache file $this->cache_data = implode("", file($this->cache_inc)); @@ -205,7 +206,7 @@ class mxchange_cache $this->cache_data = $data; // Cache version found? - if (isset($cache_version)) { + if ((isset($cache_version)) && (is_array($cache_version))) { // Remember it as well... $this->cache_version = $cache_version; } // END - if @@ -351,7 +352,7 @@ class mxchange_cache $ext_ver = GET_EXT_VERSION($ext_name); // Write cache line to file - @fwrite($this->cache_pointer, "\$cache_version = \"".$ext_ver."\";\n"); + @fwrite($this->cache_pointer, "\$cache_version['".$ext_name."'] = \"".$ext_ver."\";\n"); } else { // Cannot create file ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_PROBLEMS_DETECTED); @@ -367,7 +368,7 @@ class mxchange_cache //* DEBUG: */ echo __METHOD__.": ext_name={$ext_name},ext_ver={$ext_ver},cache_version={$this->cache_version}
\n"; // Compare both - return ($ext_ver == $this->cache_version); + return ((isset($this->cache_version[$ext_name])) && ($this->cache_version[$ext_name] == $ext_ver)); } function add_raw_row ($key, $value) { @@ -386,6 +387,10 @@ class mxchange_cache // Return line return $line; } + + function getStatus () { + return $this->ret; + } } // ?>