This commit is contained in:
Adrien MALINGREY 2020-11-13 05:08:21 +01:00
parent df2bfa1333
commit bda833f6e3
4 changed files with 46 additions and 46 deletions

32
404.php Normal file
View File

@ -0,0 +1,32 @@
<?php
require("classes.php");
$grid = new Grid();
$grid->generate();
header("HTTP/1.0 404 Not Found", true, 404);
$urlDir = $_SERVER["REQUEST_SCHEME"] . "://" . $_SERVER["HTTP_HOST"] . dirname($_SERVER["DOCUMENT_URI"]);
$urlExample = $urlDir . "/" . $grid->toString();
?>
<!DOCTYPE html>
<html lang='fr'>
<head>
<meta charset='utf-8' />
<meta name='viewport' content='width=device-width' />
<title>Sudoku non trouvé</title>
<link rel='stylesheet' type='text/css' href='style.css' />
<link rel="icon" type="image/png" href="favicon.png">
</head>
<body>
<header>
<h1>#404</h1>
</header>
L'adresse URL doit être de la forme : <?=$urlDir?>/<em>grille</em>,<br/>
<em>grille</em> étant une suite de 81 caractères représentant la grille de gauche à droite puis de haut en bas, soit :
<ul>
<li>un chiffre entre 1 et 9 pour les cases connues</li>
<li>un point pour les case vides</li>
</ul>
Exemple : <a href='<?=$urlExample?>'><?=$urlExample?></a><br/>
</body>
</html>

View File

@ -5,12 +5,12 @@ location /sudoku/ {
rewrite ^ https://$server_name$request_uri? permanent;
}
index gen-grid.php;
index index.php;
try_files $uri $uri/ @add-php-extention;
location ~ [^/]\.php(/|$) {
try_files $uri @sudoku-grid;
try_files $uri =404;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_pass unix:/var/run/php/php7.3-fpm-sudoku.sock;
fastcgi_index gen-grid.php;
@ -19,12 +19,17 @@ location /sudoku/ {
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
error_page 404 /sudoku/404.php;
location /sudoku/404.php {
internal;
}
}
location ~ "^/sudoku/([1-9.]{81})$" {
rewrite "^/sudoku/([1-9.]{81})$" /sudoku/sudoku.php?grid=$1 last;
}
location @add-php-extention {
rewrite ^([^?#]*)(\?.*)?(#.*)?$ $1.php$2$3 last;
}
location @sudoku-grid {
rewrite ^/sudoku/(.*).php$ /sudoku/sudoku.php?grid=$1 last;
}

View File

@ -1,9 +1,7 @@
<?php
require("classes.php");
const UNKNOWN = ".";
$gridStr = strip_tags($_GET['grid']);
// URL contains grid
if (preg_match("#^[1-9.]{81}$#", $gridStr)) {
?>
<!DOCTYPE html>
<html lang='fr' prefix="og: https://ogp.me/ns#">
@ -111,38 +109,3 @@
</footer>
</body>
</html>
<?php
} else {
$grid = new Grid();
$grid->generate();
header("HTTP/1.0 400 Bad Request", true, 400);
$urlDir = $_SERVER["REQUEST_SCHEME"] . "://" . $_SERVER["HTTP_HOST"] . dirname($_SERVER["DOCUMENT_URI"]);
$urlExample = $urlDir . "/" . $grid->toString();
?>
<!DOCTYPE html>
<html lang='fr'>
<head>
<meta charset='utf-8' />
<meta name='viewport' content='width=device-width' />
<title>Adresse incorrecte</title>
<link rel='stylesheet' type='text/css' href='style.css' />
<link rel="icon" type="image/png" href="favicon.png">
</head>
<body>
<header>
<h1>Adresse incorrecte</h1>
</header>
L'adresse URL doit être de la forme : <?=$urlDir?>/<em>grille</em>,<br/>
<em>grille</em> étant une suite de 81 caractères représentant la grille de gauche à droite puis de haut en bas, soit :
<ul>
<li>un chiffre entre 1 et 9 pour les cases connues</li>
<li>un point pour les case vides</li>
</ul>
Exemple : <a href='<?=$urlExample?>'><?=$urlExample?></a><br/>
</body>
</html>
<?php
}
?>