$email ,'present' => $anPresent ,'coockie-id' => $cookieToken->id ,'xsl-id' => $xslToken->validToken ) ); file_put_contents( $this->getSerialFile() ,serialize( $this ) ); $this->access = array(); $cookieToken->setFileValue( "mail-token", $this->id ); } public function writeXml( $xml ,$child ) { $xmlMyXsltoken = $xml->createElement( "mail-token" ); foreach( $this->data as $key => $data ) $xmlMyXsltoken->appendChild( $xml->createElement( $key, $data ) ); $child->appendChild( $xmlMyXsltoken ); $ressources = array(); $devices = array(); $browsers = array(); $ips = array(); foreach( $this->access as $myAcces ) { $myRessource = $myAcces->getRessource(); $myDevice = $myRessource->getDevice(); $myBrowser = $myDevice->getBrowser(); $myIp = $myBrowser->getIp(); if ( ! isset( $ips [ $myIp->ip ] ) ) $ips[$myIp->ip]=$myIp->writeXml( $xml ,$xmlMyXsltoken ); $xmlIp = $ips[$myIp->ip]; if ( ! isset( $browsers [ $myBrowser->id ] ) ) $browsers[ $myBrowser->id ]=$myBrowser->writeXml( $xml ,$xmlIp ); $xmlBrowser = $browsers[$myBrowser->id]; if ( ! isset( $devices [ $myDevice->id ] ) ) $devices[$myDevice->id]=$myDevice->writeXml( $xml ,$xmlBrowser ); $xmlDevice = $devices[$myDevice->id]; if ( ! isset( $ressources [ $myRessource->id ] ) ) $ressources[$myRessource->id]=$myRessource->writeXml( $xml ,$xmlDevice ); $xmlRessource = $ressources[$myRessource->id]; $myAcces->writeXml( $xml ,$xmlRessource ); } return $xmlMyXsltoken; } // \darkauth\db\xslToken::getXslToken( $myBrowser ,$_POST|$_GET ); public static function getMailToken( Access $myAccess ,string $mailToken = null ) : ?self { // die( self::getTokenMailFile( $xslToken ) ); if ( is_string( $mailToken ) && is_file( $tokenFile = self::getTokenMailFile( $mailToken ) ) ) { $mailToken = unserialize( file_get_contents( $tokenFile ) ); $mailToken->isNew=false; $mailToken->access[]=$myAccess; file_put_contents( $mailToken->getSerialFile() ,serialize( $mailToken ) ); } else $mailToken=null; return $mailToken; } public function getSerialFile() { return $this->getDir()."/".$this->id.".dbphp"; } public function getDir() : string { return self::getMailDir(); } public static function getTokenMailFile( string $token ) { return self::getMailDir()."/{$token}.dbphp"; } public static function getMailDir() { return self::$userDir; } } ?>