sans cookies

This commit is contained in:
Adrien MALINGREY 2025-05-05 22:41:55 +02:00
parent 1a35d8e920
commit ea4555144c
2 changed files with 27 additions and 24 deletions

View File

@ -12,6 +12,7 @@ class Grille implements ArrayAccess {
public $lignes = []; public $lignes = [];
public $colonnes = []; public $colonnes = [];
public $valide = false; public $valide = false;
private $id;
public function __construct($hauteur, $largeur) public function __construct($hauteur, $largeur)
{ {
@ -29,14 +30,6 @@ class Grille implements ArrayAccess {
$this->lettres_suivantes = tries(max($hauteur, $largeur)); $this->lettres_suivantes = tries(max($hauteur, $largeur));
} }
public function genere($id) {
mt_srand(crc32($id));
$grilles = $this->gen_grilles();
$grilles->current();
return $grilles->valid();
}
public function get_ligne($y, $largeur) public function get_ligne($y, $largeur)
{ {
$ligne = ""; $ligne = "";
@ -107,6 +100,20 @@ class Grille implements ArrayAccess {
} }
} }
public function genere($id) {
mt_srand(crc32($id));
$grilles = $this->gen_grilles();
$grilles->current();
if ($grilles->valid()) {
$this->save($id);
return true;
} else {
return false;
}
}
public function hash() public function hash()
{ {
$string = ""; $string = "";
@ -115,28 +122,32 @@ class Grille implements ArrayAccess {
return hash('sha256', $string); return hash('sha256', $string);
} }
public function save() { public function save($id) {
session_start(); session_id($id);
session_start(["use_cookies" => false]);
$_SESSION["$this->largeur;$this->hauteur;$id"] = implode( $_SESSION["$this->largeur,$this->hauteur"] = implode(
"", "",
array_map( array_map(
function ($ligne) { function ($ligne) {
implode("", $ligne); return implode("", $ligne);
}, },
$this->grille $this->grille
) )
); );
var_dump($_SESSION);
} }
public function load($id) { public function load($id) {
session_start(); session_id($id);
session_start(["use_cookies" => false]);
if (!isset($_SESSION["$this->largeur;$this->hauteur;$id"])) { if (!isset($_SESSION["$this->largeur,$this->hauteur"])) {
var_dump($_SESSION);
return false; return false;
} }
foreach (str_split( $_SESSION["$this->largeur;$this->hauteur;$id"], $this->largeur) as $y => $ligne) { foreach (str_split($_SESSION["$this->largeur,$this->hauteur"], $this->largeur) as $y => $ligne) {
foreach(str_split($ligne) as $x => $lettre) { foreach(str_split($ligne) as $x => $lettre) {
$this->grille[$y][$x] = $lettre; $this->grille[$y][$x] = $lettre;
} }
@ -151,7 +162,7 @@ class Grille implements ArrayAccess {
for ($x = 0; $x < $this->largeur; $x++) { for ($x = 0; $x < $this->largeur; $x++) {
$mots = explode(" ", $this->get_colonne($x, $this->hauteur)); $mots = explode(" ", $this->get_colonne($x, $this->hauteur));
$this->colonnes[$y] = array_filter($mots, function($mot) { $this->colonnes[$x] = array_filter($mots, function($mot) {
return strlen($mot) >= 2; return strlen($mot) >= 2;
}); });
} }

View File

@ -34,8 +34,6 @@ if (!isset($_GET["grille"])) {
$id = uniqid(); $id = uniqid();
} while (!$grille->genere($id)); } while (!$grille->genere($id));
$grille->save();
$_GET["grille"] = $id; $_GET["grille"] = $id;
header("Location: " . dirname($_SERVER['DOCUMENT_URI']) . "?" . http_build_query($_GET)); header("Location: " . dirname($_SERVER['DOCUMENT_URI']) . "?" . http_build_query($_GET));
exit; exit;
@ -46,12 +44,6 @@ $id = htmlspecialchars($_GET["grille"]);
$grille_valide = $grille->load($id) || $grille->genere($id); $grille_valide = $grille->load($id) || $grille->genere($id);
if ($grille_valide) { if ($grille_valide) {
if (!isset($_GET["grille"])) {
$_GET["grille"] = $id;
header("Location: " . dirname($_SERVER['DOCUMENT_URI']) . "?" . http_build_query($_GET));
exit;
}
$definitions_horizontales = []; $definitions_horizontales = [];
for ($y = 0; $y < $hauteur; $y++) { for ($y = 0; $y < $hauteur; $y++) {
$definitions_horizontales[$y] = []; $definitions_horizontales[$y] = [];