41 $salt = $_SERVER[
'SERVER_SIGNATURE'] ??
'L';
42 $salt .= $_SERVER[
'SERVER_SOFTWARE'] ??
'E';
43 $salt .= $_SERVER[
'SERVER_NAME'] ??
'P';
44 $salt .= $_SERVER[
'SERVER_ADDR'] ??
'T';
45 $salt .= $_SERVER[
'SERVER_PORT'] ??
'ON';
61 if (function_exists(
'microtime'))
63 list($usec, $sec) = explode(
" ", microtime());
64 $time = (string) ((
float) $usec + (float) $sec);
68 $time = (string) time();
71 $token = substr(hash(
"sha512", $time . $this->_salt), 0, 21) .
"z" . substr($time, 0, 10);
73 (isset($_SESSION[
'LepTokens'])) ? $_SESSION[
'LepTokens'][] = $token : $_SESSION[
'LepTokens'] = [$token];
74 (isset($_SESSION[
'LepTokens'])) ? ($_SESSION[
'LepTokens'][$token] = $this->_reftoken) : ($_SESSION[
'LepTokens'] = [$token =>
$this->_reftoken]);
92 if (!LEPTOKEN_LIFETIME)
99 if (isset($_GET[
'leptoken']))
101 $currentToken= $_GET[
'leptoken'];
103 elseif (isset($_GET[
'amp;leptoken']))
105 $currentToken= $_GET[
'amp;leptoken'];
107 elseif (isset($_POST[
'leptoken']))
109 $currentToken= $_POST[
'leptoken'];
111 elseif (isset($_POST[
'amp;leptoken']))
113 $currentToken= $_POST[
'amp;leptoken'];
120 if (isset($_SESSION[
'LepTokens']))
123 $this->deleteLepTokensByTimeout();
125 if ($this->testForReloadPage($currentToken) ===
true)
129 $tokens = $_SESSION[
'LepTokens'];
134 foreach ($tokens as $token => $ref)
137 if ($currentToken== $token)
140 foreach($_SESSION[
'LepTokens'] as $index => $value)
142 if($value === $token)
144 $aRev = explode(
"z", $token);
145 $aRefTime = intval($aRev[1] ?? 0);
146 if (time() - $aRefTime > 60*10)
147 unset($_SESSION[
'LepTokens'][$index], $_SESSION[
'LepTokens'][$value]);
170 if (isset($_SESSION[
'LepTokens']) && isset($_SESSION[
'GROUPS_ID']))
172 $aTemp = explode(
", ", $_SESSION[
'GROUPS_ID']);
176 unset($_SESSION[
'LepTokens']);
185 private function deleteLepTokensByTimeout(): bool
187 $timeOut = intval(time() - LEPTOKEN_LIFETIME);
188 foreach($_SESSION[
'LepTokens'] as $key => $value)
190 $tempToken = empty($value) ? $key : $value;
191 $tempTerms = explode(
"z", $tempToken);
192 $tokenTime = intval($tempTerms[1]);
193 if ($tokenTime < $timeOut)
195 unset($_SESSION[
'LepTokens'][$key], $_SESSION[
'LepTokens'][$value]);
202 private function testForReloadPage($lookUpToken): bool
206 foreach($_SESSION[
'LepTokens'] as $key => $value)
208 if (($key == $lookUpToken) && ($counter > 1))
217 if ($deleteFlag ===
true)
219 unset($_SESSION[
'LepTokens'][$key], $_SESSION[
'LepTokens'][$value]);
223 if (
true === $deleteFlag)
225 $_SESSION[
'LepTokens'] = [];
226 $_SESSION[
'LepTokens'][] = $lookUpToken;
227 $_SESSION[
'LepTokens'][$key] =
"";