1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
|
<?php
function l($fr, $en) {
if (isset($_GET['lang'])) {
if ($_GET['lang'] == "en") {
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = "en";
} else if ($_GET['lang'] == "fr") {
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = "fr";
}
}
if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) == "fr") {
return $fr;
} else {
return $en;
}
}
?>
<!DOCTYPE html>
<html lang="en" style="height:100%;">
<head>
<meta charset="UTF-8">
<title>Kartik</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="/static/favicon.png">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="/appsicons.css">
</head>
<body style="height:100%;background-color:#cda59b;">
<nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">
<a class="navbar-brand" href="/">
<img src="/static/logo.png" alt="Kartik" style="height:32px;">
</a>
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="/"><?= l("Accueil", "Home") ?></a>
</li>
<?php require_once $_SERVER['DOCUMENT_ROOT'] . "/apps.php"; ?>
</ul>
</div>
</nav>
<div id="separator"></div>
<div class="container" style="display:grid;grid-template-columns: 1fr 1fr;">
<img src="/static/broken.jpg" style="width:100%;">
<div style="display:flex;align-items:center;justify-content:left;">
<div>
<h1 class="display-1"><?= $_GET['c'] ?? "404" ?></h1>
<h4 class="display-4"><?php
if (!isset($_GET['c'])) {
echo(l("La page demandée n'existe pas", "The requested page doesn't exist"));
} else {
switch ($_GET['c']) {
case "404":
echo(l("La page demandée n'existe pas", "The requested page doesn't exist"));
break;
case "308":
case "307":
case "302":
case "301":
echo(l("Le navigateur ne supporte pas les redirections", "The browser doesn't support redirects"));
break;
case "400":
echo(l("La requête est incorrecte", "The request is invalid"));
break;
case "401":
echo(l("Échec de l'authentification HTTP", "HTTP authentication failure"));
break;
case "403":
echo(l("La page est inaccessible au public", "The page is unreachable by the public"));
break;
case "405":
echo(l("La méthode utilisée n'est pas autorisée", "The used method is not allowed"));
break;
case "406":
echo(l("La resource envoyée n'est pas acceptable par le navigateur", "The sent resource is unacceptable for the browser"));
break;
case "407":
echo(l("Cette page se trouve derrière un proxy qui demande une authentification", "This page is behind a proxy that requires authentication"));
break;
case "408":
echo(l("Le serveur n'a pas répondu à temps", "The server did not respond in time"));
break;
case "409":
echo(l("Un conflit empêche le traitement correct de la requête", "A conflict prevent correct processing"));
break;
case "410":
echo(l("La page demandée a été supprimée", "The request page has been deleted"));
break;
case "411":
echo(l("La longueur de requête est nécessaire et n'a pas été précisée", "The request length is necessary and hasn't been specified"));
break;
case "412":
echo(l("Les préconditions envoyées n'ont pas pu être vérifiée", "The sent preconditions cannot be verified"));
break;
case "413":
echo(l("Le contenu de la requête est trop long", "The request content is too long"));
break;
case "414":
echo(l("L'URI de la requête est trop longue", "The request URI is too long"));
break;
case "415":
echo(l("Le type MIME de la ressource n'est pas supporté par le navigateur", "The resource MIME type is not supported by the browser"));
break;
case "416":
echo(l("Il est impossible de satisfaire le rayon d'action de la requête", "Unable to satisfy the request action range"));
break;
case "421":
echo(l("Une connexion expirée a été réutilisée", "An expired connection has been reused"));
break;
case "425":
echo(l("Le serveur n'a pas fini de démarrer", "The server is not done starting"));
break;
case "426":
echo(l("Une mise à jour de TLS est requise", "A TLS update is required"));
break;
case "428":
echo(l("Une condition pour la requête n'a pas été donnée", "A condition for the request hasn't been given"));
break;
case "429":
echo(l("Vous avez effectué trop de requêtes", "You made too many requests"));
break;
case "431":
echo(l("Les en-têtes HTTP envoyés sont trop long pour le serveur", "The sent HTTP headers are too long for the server"));
break;
case "451":
echo(l("La ressource a été retirée pour des raisons légales", "The resource has been removed for legal reasons"));
break;
case "500":
echo(l("Une erreur interne au serveur s'est produite", "An internal server error occured"));
break;
case "501":
echo(l("La fonctionnalité demandée n'est pas supportée par le serveur", "The requested feature is not supported by the server"));
break;
case "502":
echo(l("Le serveur mandataire rencontre des problèmes", "The proxy server is encountering problems"));
break;
case "503":
echo(l("Le serveur est en maintenance ou subit une surcharge", "The server is overloaded or in maintenance mode"));
break;
case "504":
echo(l("Le serveur mandataire n'a pas répondu à temps", "The proxy server didn't respond in time"));
break;
case "505":
echo(l("Le serveur ne supporte pas la version d'HTTP utilisée", "The server does not support the used HTTP version"));
break;
default:
echo(l("Quelque chose s'est mal passé", "Something went wrong"));
break;
}
}
?></h4>
<p style="margin-top:20px;">
<a href="/" type="button" class="btn btn-secondary"><?= l("Retourner à l'accueil", "Go back to the homepage") ?></a>
</p>
</div>
</div>
<style>
@media (max-width: 767px) {
.container {
grid-template-columns: 1fr !important;
text-align: center;
}
.display-1 {
font-size: 3rem !important;
}
.display-4 {
font-size: 1.75rem !important;
}
}
</style>
</div>
</body>
</html>
|