17 define(
'XOOPS_SALT', substr(md5(XOOPS_DB_PREFIX.XOOPS_DB_USER.XOOPS_ROOT_PATH), 5, 8));
334 public function &
create($name, $timeout=XOOPS_TOKEN_TIMEOUT)
337 $token->setSerialNumber($this->getUniqueSerial($name));
338 $this->
register($token);
342 public function &fetch($name, $serial_number=
null)
345 if (isset($_SESSION[XOOPS_TOKEN_MULTI_SESSION_STRING][$this->_prefix.$name][$serial_number])) {
346 $ret =& $_SESSION[XOOPS_TOKEN_MULTI_SESSION_STRING][$this->_prefix.$name][$serial_number];
351 public function register(&$token)
353 $_SESSION[XOOPS_TOKEN_MULTI_SESSION_STRING][$this->_prefix.$token->_name_][$token->getSerialNumber()] = $token;
358 unset($_SESSION[XOOPS_TOKEN_MULTI_SESSION_STRING][$this->_prefix.$token->_name_][$token->getSerialNumber()]);
361 public function isRegistered($name, $serial_number=
null)
363 return isset($_SESSION[XOOPS_TOKEN_MULTI_SESSION_STRING][$this->_prefix.$name][$serial_number]);
366 public function autoValidate($name, $clearIfValid=
true)
370 if ((
null !== $serial_number) && $token =& $this->fetch($name, $serial_number)) {
371 return $this->
validate($token, $clearIfValid);
385 public static function &
quickCreate($name, $timeout = XOOPS_TOKEN_TIMEOUT)
388 $ret =& $handler->create($name, $timeout);
404 return $handler->autoValidate($name, $clearIfValid);
413 $str = XOOPS_TOKEN_PREFIX.$name .
'_';
414 foreach ($_REQUEST as $key=>$val) {
415 if (preg_match(
'/' . $str .
"(\d+)/", $key, $match)) {
416 return (
int)$match[1];
423 public function getUniqueSerial($name)
425 if (isset($_SESSION[XOOPS_TOKEN_MULTI_SESSION_STRING][$name])) {
426 if (is_array($_SESSION[XOOPS_TOKEN_MULTI_SESSION_STRING][$name])) {
427 for ($i=0;isset($_SESSION[XOOPS_TOKEN_MULTI_SESSION_STRING][$name][$i]);$i++);