0 ) { foreach( $cookies as $cookieId => $cookieValue ) { if ( is_object( $cookieToken = self::getCookieTokenFromFile( $cookieId ) ) ) break; } } if (is_null( $cookieToken ) ) { $cookieToken=new self(); $cookieToken->isNew=true; } return $cookieToken; } public static function getCookieTokenFromFile( $cookieId ) : ?self { $cookieToken = null; $cookieFile = self::getCookieFile( $cookieId ); if ( is_file( $cookieFile ) ) $cookieToken = unserialize( file_get_contents( $cookieFile ) ); return $cookieToken; } // \darkauth\db\xslToken::createCookie( $cookieToken ,$expires_or_options ); public static function createCookie( self $cookieToken , $expires_or_options) { $cookieToken->timeout=time()+$expires_or_options; $cookieToken->isNew=false; file_put_contents( self::getCookieFile( $cookieToken->id ) ,serialize( $cookieToken ) ); setrawcookie( $cookieToken->id, rawurlencode( \uniqid() ),time()+$expires_or_options, "/" ); } public function getFileValue( $key ) : ?string { $response=null; $dataFile = null; if ( is_file( $this->getSerialFile() ) ) $dataFile = unserialize( file_get_contents( $this->getSerialFile() ) ); if ( is_array( $dataFile ) && isset( $dataFile[$key] ) ) $response=$dataFile[$key]; return $response; } public function setFileValue( $key ,$value ) : void { $dataFile = null; if ( is_file( $this->getSerialFile() ) ) $dataFile = unserialize( file_get_contents( $this->getSerialFile() ) ); if ( is_null( $dataFile ) ) $dataFile=array(); $dataFile[$key]=$value; file_put_contents( $this->getSerialFile(), serialize( $dataFile ) ); } public function getSerialFile() : string { return self::getCookieFile( $this->id ).".dbphp"; } public function getDir() : string { return self::getCookieDir(); } public static function getCookieFile( string $tokenHash ) { return self::getCookieDir()."/".$tokenHash; } public static function getCookieDir( ) { return self::$cookieTokenDir; } } \darkauth\db\auth\cookieToken::init(); ?>