$email ,'present' => $anPresent ); if ( is_object( $cookieToken ) ) $data['coockie-id'] = $cookieToken->id; if ( is_object( $xslToken ) ) $data['xsl-id'] = $xslToken->validToken; parent::__construct( $data ); if ( is_object( $cookieToken ) ) $cookieToken->setFileValue( "mail-token", $this->id ); file_put_contents( $this->getSerialFile() ,serialize( $this ) ); global $darkauthDir; $tokenWebFolder = "{$darkauthDir}/www/mail" ; if ( ! is_dir( $tokenWebFolder ) ) { // echo "mkdir( {$darkauthDir}/www/xslToken );"; mkdir( $tokenWebFolder ); file_put_contents( "{$tokenWebFolder}/.htaccess",file_get_contents("{$darkauthDir}/xsl/token/.htaccess") ); if ( ! is_file( "{$darkauthDir}/www/.htaccess" ) ) file_put_contents( "{$darkauthDir}/www/.htaccess",file_get_contents("{$darkauthDir}/xsl/token/.htaccess") ); } if ( ! is_file( "{$tokenWebFolder}/{$this->id}" ) ) { file_put_contents( "{$tokenWebFolder}/{$this->id}.xml" , ' "'.$this->id.'" );require_once \''."{$darkauthDir}/mail/index.php".'\'; ?>' ); } $this->access = array(); } public function writeXml( $xml ,$child ) { $xmlMyXsltoken = $xml->createElement( "mail-token" ); if ( is_array( $this->data ) ) foreach( $this->data as $key => $data ) $xmlMyXsltoken->appendChild( $xml->createElement( $key, $data ) ); $child->appendChild( $xmlMyXsltoken ); $ressources = array(); $devices = array(); $browsers = array(); $ips = array(); if ( is_array( $this->access ) ) 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::$mailDir; } } \darkauth\db\auth\mailToken::init(); ?>