mirror of
				https://github.com/e107inc/e107.git
				synced 2025-10-24 19:26:21 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			142 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /**
 | |
|  * HybridAuth
 | |
|  * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
 | |
|  * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html 
 | |
|  */
 | |
| require_once realpath(dirname(__FILE__)) . "/StorageInterface.php";
 | |
| 
 | |
| /**
 | |
|  * HybridAuth storage manager
 | |
|  */
 | |
| class Hybrid_Storage implements Hybrid_Storage_Interface {
 | |
| 
 | |
| 	/**
 | |
| 	 * Constructor
 | |
| 	 */
 | |
| 	function __construct() {
 | |
| 		if (!session_id()) {
 | |
| 			if (!session_start()) {
 | |
| 				throw new Exception("Hybridauth requires the use of 'session_start()' at the start of your script, which appears to be disabled.", 1);
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		$this->config("php_session_id", session_id());
 | |
| 		$this->config("version", Hybrid_Auth::$version);
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Saves a value in the config storage, or returns config if value is null
 | |
| 	 *
 | |
| 	 * @param string $key   Config name
 | |
| 	 * @param string $value Config value
 | |
| 	 * @return array|null
 | |
| 	 */
 | |
| 	public function config($key, $value = null) {
 | |
| 		$key = strtolower($key);
 | |
| 
 | |
| 		if ($value) {
 | |
| 			$_SESSION["HA::CONFIG"][$key] = serialize($value);
 | |
| 		} elseif (isset($_SESSION["HA::CONFIG"][$key])) {
 | |
| 			return unserialize($_SESSION["HA::CONFIG"][$key]);
 | |
| 		}
 | |
| 		
 | |
| 		return null;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Returns value from session storage
 | |
| 	 *
 | |
| 	 * @param string $key Key
 | |
| 	 * @return string|null
 | |
| 	 */
 | |
| 	public function get($key) {
 | |
| 		$key = strtolower($key);
 | |
| 
 | |
| 		if (isset($_SESSION["HA::STORE"], $_SESSION["HA::STORE"][$key])) {
 | |
| 			return unserialize($_SESSION["HA::STORE"][$key]);
 | |
| 		}
 | |
| 
 | |
| 		return null;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Saves a key value pair to the session storage
 | |
| 	 *
 | |
| 	 * @param string $key   Key
 | |
| 	 * @param string $value Value
 | |
| 	 * @return void
 | |
| 	 */
 | |
| 	public function set($key, $value) {
 | |
| 		$key = strtolower($key);
 | |
| 		$_SESSION["HA::STORE"][$key] = serialize($value);
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Clear session storage
 | |
| 	 * @return void
 | |
| 	 */
 | |
| 	function clear() {
 | |
| 		$_SESSION["HA::STORE"] = array();
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Delete a specific key from session storage
 | |
| 	 *
 | |
| 	 * @param string $key Key
 | |
| 	 * @return void
 | |
| 	 */
 | |
| 	function delete($key) {
 | |
| 		$key = strtolower($key);
 | |
| 
 | |
| 		if (isset($_SESSION["HA::STORE"], $_SESSION["HA::STORE"][$key])) {
 | |
| 			$f = $_SESSION['HA::STORE'];
 | |
| 			unset($f[$key]);
 | |
| 			$_SESSION["HA::STORE"] = $f;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Delete all keys recursively from session storage
 | |
| 	 *
 | |
| 	 * @param string $key Key
 | |
| 	 * @retun void
 | |
| 	 */
 | |
| 	function deleteMatch($key) {
 | |
| 		$key = strtolower($key);
 | |
| 
 | |
| 		if (isset($_SESSION["HA::STORE"]) && count($_SESSION["HA::STORE"])) {
 | |
| 			$f = $_SESSION['HA::STORE'];
 | |
| 			foreach ($f as $k => $v) {
 | |
| 				if (strstr($k, $key)) {
 | |
| 					unset($f[$k]);
 | |
| 				}
 | |
| 			}
 | |
| 			$_SESSION["HA::STORE"] = $f;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Returns session storage as a serialized string
 | |
| 	 * @return string|null
 | |
| 	 */
 | |
| 	function getSessionData() {
 | |
| 		if (isset($_SESSION["HA::STORE"])) {
 | |
| 			return serialize($_SESSION["HA::STORE"]);
 | |
| 		}
 | |
| 		return null;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Restores the session from serialized session data
 | |
| 	 * 
 | |
| 	 * @param string $sessiondata Serialized session data
 | |
| 	 * @return void
 | |
| 	 */
 | |
| 	function restoreSessionData($sessiondata = null) {
 | |
| 		$_SESSION["HA::STORE"] = unserialize($sessiondata);
 | |
| 	}
 | |
| 
 | |
| }
 |