declare properties, use session without cookies

This commit is contained in:
2025-05-06 18:20:08 +02:00
parent 4b92464c94
commit 310a1883d2
3 changed files with 32 additions and 18 deletions

View File

@ -1,19 +1,19 @@
<?php
require("classes.php");
global $sudokuGridSolutions;
if (!isset($sudokuGridSolutions)) $sudokuGridSolutions = array();
$fullUrl = $_SERVER["REQUEST_SCHEME"]."://".$_SERVER["HTTP_HOST"].$_SERVER["DOCUMENT_URI"];
$dirUrl = dirname($fullUrl);
$currentGrid = strip_tags($_SERVER['QUERY_STRING']);
if (preg_match("/^[1-9.]{81}$/", $currentGrid)) {
if (!array_key_exists($currentGrid, $sudokuGridSolutions)) {
if (preg_match("/^[1-9-]{81}$/", $currentGrid)) {
session_id($currentGrid);
session_start(["use_cookies" => false]);
if (!array_key_exists("nbSolutions", $_SESSION)) {
$grid = new Grid($currentGrid);
$sudokuGridSolutions[$currentGrid] = $grid->containsDuplicates() ? -1 : $grid->countSolutions(2);
$_SESSION["nbSolutions"] = $grid->containsDuplicates() ? -1 : $grid->countSolutions(2);
}
switch($sudokuGridSolutions[$currentGrid]) {
switch($_SESSION["nbSolutions"]) {
case -1:
$warning = "Cette grille contient des doublons.";
break;
@ -27,13 +27,18 @@
}
require("sudoku.php");
} else {
$grid = new Grid();
$gridAsString = $grid->toString();
$newGridUrl = "$dirUrl/?$gridAsString";
$sudokuGridSolutions[$gridAsString] = 1;
if ($currentGrid) {
require("400.php");
} else {
$grid = new Grid();
$gridAsString = $grid->toString();
$newGridUrl = "$dirUrl/?$gridAsString";
session_id($gridAsString);
session_start(["use_cookies" => false]);
$_SESSION["nbSolutions"] = 1;
header("Location: $newGridUrl");
}
}