Corrections Rémi, optimisations

This commit is contained in:
Fred Tempez 2024-09-28 17:54:05 +02:00
parent 9bb5793720
commit f1e1989c97
3 changed files with 46 additions and 11 deletions

View File

@ -538,6 +538,7 @@ class core extends common
if ( if (
$this->isConnected() === true $this->isConnected() === true
&& $this->getUser('id') && $this->getUser('id')
&& !$this->isPost()
) { ) {
$this->setData(['user', $this->getUser('id'), 'accessUrl', $this->getUrl()], false); $this->setData(['user', $this->getUser('id'), 'accessUrl', $this->getUrl()], false);
$this->setData(['user', $this->getUser('id'), 'accessTimer', time()]); $this->setData(['user', $this->getUser('id'), 'accessTimer', time()]);

View File

@ -620,7 +620,7 @@ public function setData($keys = [], $save = true)
* Écrit les données dans un fichier avec plusieurs tentatives d'écriture et verrouillage * Écrit les données dans un fichier avec plusieurs tentatives d'écriture et verrouillage
* *
* @param string $filename Le nom du fichier * @param string $filename Le nom du fichier
* @param array $data Les données à écrire dans le fichier * @param string $data Les données à écrire dans le fichier
* @param int $flags Les drapeaux optionnels à passer à la fonction $this->secure_file_put_contents * @param int $flags Les drapeaux optionnels à passer à la fonction $this->secure_file_put_contents
* @return bool True si l'écriture a réussi, sinon false * @return bool True si l'écriture a réussi, sinon false
*/ */
@ -630,33 +630,31 @@ public function setData($keys = [], $save = true)
// Initialise le compteur de tentatives // Initialise le compteur de tentatives
$attempts = 0; $attempts = 0;
// Convertit les données en chaîne de caractères
$serialized_data = serialize($data);
// Vérifie la longueur des données // Vérifie la longueur des données
$data_length = strlen($serialized_data); $data_length = strlen($data);
// Effectue jusqu'à 5 tentatives d'écriture // Effectue jusqu'à 5 tentatives d'écriture
while ($attempts < 5) { while ($attempts < 5) {
// Essaye d'écrire les données dans le fichier avec verrouillage exclusif // Essaye d'écrire les données dans le fichier avec verrouillage exclusif
$write_result = file_put_contents($filename, $data, LOCK_EX | $flags); $write_result = file_put_contents($filename, $data, LOCK_EX | $flags);
$now = \DateTime::createFromFormat('U.u', microtime(true));
file_put_contents("tmplog.txt", '[SecurePut][' . $now->format('H:i:s.u') . ']' . "\r\n", FILE_APPEND);
// Vérifie si l'écriture a réussi // Vérifie si l'écriture a réussi
if ($write_result !== false && $write_result === $data_length) { if ($write_result !== false && $write_result === $data_length) {
// Sort de la boucle si l'écriture a réussi // Sort de la boucle si l'écriture a réussi
return true; break;
} }
// Incrémente le compteur de tentatives // Incrémente le compteur de tentatives
$attempts++; $attempts++;
sleep(1);
} }
// Etat de l'écriture
// Échec de l'écriture après plusieurs tentatives return ($attempts < 5);
return false;
} }
public function initDB($module, $path = '') public function initDB($module, $path = '')
{ {
// Chemin complet vers le fichier JSON // Chemin complet vers le fichier JSON

36
tmplog.txt Normal file
View File

@ -0,0 +1,36 @@
[JsonDb][15:47:51.196300]--site/data/user.json
[JsonDb][15:47:53.514400]--site/data/user.json
[JsonDb][15:47:53.554000]--site/data/config.json
[JsonDb][15:47:53.556400]--site/data/home/page.json
[SecurePut][15:47:53.558600]--
[JsonDb][15:47:53.700000]--site/data/user.json
[JsonDb][15:48:33.408600]--site/data/user.json
[JsonDb][15:48:34.974200]--site/data/user.json
[JsonDb][15:48:35.031800]--site/data/config.json
[JsonDb][15:48:35.036000]--site/data/home/page.json
[SecurePut][15:48:35.039100]--\r\n[JsonDb][15:48:35.157700]--site/data/user.json
[JsonDb][15:49:30.509400]--site/data/user.json
[JsonDb][15:49:34.792500]--site/data/user.json
[JsonDb][15:49:34.810300]--site/data/config.json
[JsonDb][15:49:34.811400]--site/data/home/page.json
[SecurePut][15:49:34.830900]\r\n[JsonDb][15:49:34.918500]--site/data/user.json
[JsonDb][15:50:18.628400]--site/data/user.json
[JsonDb][15:50:20.141700]--site/data/user.json
[JsonDb][15:50:20.157800]--site/data/config.json
[JsonDb][15:50:20.158600]--site/data/home/page.json
[SecurePut][15:50:20.159400]
[JsonDb][15:50:20.260000]--site/data/user.json
[JsonDb][15:52:55.595000]--site/data/user.json
[JsonDb][15:52:57.742200]--site/data/config.json
[JsonDb][15:52:57.743800]--site/data/home/page.json
[SecurePut][15:52:57.744700]
[JsonDb][15:52:57.833800]--site/data/user.json
[JsonDb][15:52:59.605900]--site/data/user.json
[JsonDb][15:53:00.871900]--site/data/user.json
[JsonDb][15:53:12.489200]--site/data/user.json
[JsonDb][15:53:22.887700]--site/data/user.json
[JsonDb][15:53:28.190300]--site/data/user.json
[JsonDb][15:53:30.129500]--site/data/config.json
[JsonDb][15:53:30.133300]--site/data/home/page.json
[SecurePut][15:53:30.136000]
[JsonDb][15:53:30.251600]--site/data/user.json