PHP cache class

< ?php
/**
*
* @var $cache_file_name string file name
* @var $age int age in seconds
*/
class cache {

	public $cache_file_name;
	public $age;

	/**
	* cache::__construct()
	* @access public
	*/
	public function __construct(){
		$this->cache_start();
		register_shutdown_function(array($this, "cache_end"), "inside");
	}

	/**
	* cache::__descruct()
	* @access public
	* @return
	*/
	public function __descruct(){
		$this->cache_end();
	}

	/**
	* cache::cache_start()
	* @access public
	* @return
	*/
	public function cache_start(){

		global $cache_file_name, $age;
		$cache_file_name = 	$_SERVER["DOCUMENT_ROOT"].$_SERVER['REQUEST_URI'] . '_cache';

		if (empty($age)){
			$age = 600;
		}

		if(file_exists($cache_file_name)){
			if (filemtime($cache_file_name) + $age > time()) {
				readfile($cache_file_name);
				unset($cache_file_name);
				exit;
			}
		}
		ob_start();
	}

	/**
	* cache::cache_end()
	* @access public
	* @return
	*/
	public function cache_end()
	{
		global $cache_file_name;
		if (empty($cache_file_name)){
			return;
		}
		$str = ob_get_clean();
		echo $str;
		fwrite(fopen($cache_file_name . '_tmp', "w"), $str);
		rename($cache_file_name . '_tmp',$cache_file_name);
	}

}

?>

Gewinnspiel ….

A: Nach Rücksprache bei Frau A. ist diesmal aber der Wunsch “Versand per email”.

B:  Aber ihr ist klar, dass wenn dort 50.000 Leute mitmachen, dass sie dann 50.000 E-Mails bekommen?
Das sollte sie auf jeden Fall bedenken.

Warum das nicht wie bisher in eine Datenbank gespeichert werden soll ist mir ein Rätsel.

Kreditkarteninformationenklau leicht gemacht

Social engineering ist ja oft das Stichwort wenn es um den Klau von Kreditkarteninformationen geht. Aber warum so umständlich? Heute bei dem Besuch bei BurgerKing© waren dort am Tresen 3 Bezahlgeräte für Kreditkarten. Auf 2 von den 3 waren die Zettel nicht abgerissen.  So hätte ich locker und ohne jegliche Mühe die Kontonummer, Inhaber, BLZ, und Kreditkartennummer von 2 Leuten haben können.

Augen auf beim Burgerkauf!

Author Archive

Archives by Month: