Ben kullanıcı kimlik doğrulaması için kullandığınız, Singleton tasarım dayalı, bir nesne var. Nesne bir kullanıcı başına bir nesne olduğundan, ben nesne yürütme sonunda bir oturum değişkeni otomatik olarak depolanan olmak istiyorum. Ancak, nesne seri deneyin, her zaman içten veya dıştan, ben boş bir dize olsun.
Aşağıdaki temel sınıf, eksi alakasız fonksiyonları:
<?php
/**
* The user class is intended to handle information about authenticated users. Information contained in this class is to be stored
* in SESSION['session_user'] as a serialized object.
*/
class User {
// Reference to the single User instance
private static $_instance;
// User levels
const GUEST = 0;
const USER = 1;
const ADMINISTRATOR = 3;
// Information about the account
private $_username;
private $_userid;
private $_userlevel;
// Information about the user, for preventing session hijacking
private $_ipaddress;
private $_useragent;
private function __construct() {
// Set the visitor's information
// Set the default information
}
public static function getUser() {
// Check if a user object has been created
if (!isset(self::$_instance)) {
// Check if the object is stored in the user session
if (isset($_SESSION['session_user'])) {
self::$_instance = unserialize($_SESSION['session_user']);
//unset($_SESSION['session_user']);
echo 'Unserializing user';
} else {
$c = __CLASS__;
self::$_instance = new $c;
echo 'Creating new user';
}
}
return self::$_instance;
}
function __wakeup() {
// First, check that the user agent has not changed
// Check that the IP has not changed
}
function __destroy() {
$_SESSION['session_user'] = serialize(self::$_instance);
echo serialize(self::$_instance);
print_r($_SESSION);
}
public function __set($index, $value) {
return NULL;
}
public function __get($index) {
// Determine which value to return
}
public function authenticate($inUsername, $inPassword) {
// Authenticate the user
}
}
?>
Ben de dahili olarak, nesne üzerinde seri diyoruz her zaman __ serialize ($ this) kullanarak yöntemi yok ya (self :: $ _instance) seri, ya da dışarıdan serialize ($ user) kullanılarak, ben boş bir dize olsun. Ancak, ben, kimliği doğrulanmış bir kullanıcı hakkında bunun dışında veri alabilirsiniz beri nesne var biliyorum.