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 $colonnes = [];
public $valide = false;
private $id;
public function __construct($hauteur, $largeur)
{
@ -29,14 +30,6 @@ class Grille implements ArrayAccess {
$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)
{
$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()
{
$string = "";
@ -115,28 +122,32 @@ class Grille implements ArrayAccess {
return hash('sha256', $string);
}
public function save() {
session_start();
public function save($id) {
session_id($id);
session_start(["use_cookies" => false]);
$_SESSION["$this->largeur;$this->hauteur;$id"] = implode(
$_SESSION["$this->largeur,$this->hauteur"] = implode(
"",
array_map(
function ($ligne) {
implode("", $ligne);
return implode("", $ligne);
},
$this->grille
)
);
var_dump($_SESSION);
}
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;
}
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) {
$this->grille[$y][$x] = $lettre;
}
@ -151,7 +162,7 @@ class Grille implements ArrayAccess {
for ($x = 0; $x < $this->largeur; $x++) {
$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;
});
}

View File

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