diff --git a/Readme.md b/Readme.md index 5999c40e3b17c1e0f27e9cdef66895e76d9b9ad1..973ab32cc3cca0a99f5e7ffee300dd3fe566d2df 100644 --- a/Readme.md +++ b/Readme.md @@ -66,4 +66,7 @@ Ci-dessous merci de répondre à ces deux questions (merci de répondre avec que copier/coller, je ne souhaite pas de définition toute faite, mais une réponse personnelle) : - Quel est le protocole utilisé pour communiquer avec le serveur ? + Le HTTP (HyperText Transfer Protocol) et aussi plus safe le HTTPS (HTTP Secure) + - JS est un langage asynchrone ou synchrone ? Expliquez. + assynchrone, avec la utilisation de promises et AJAX request JS n'est synchrone et il devient plus dinamique pour repondre a utilisateur. diff --git a/assets/actions/gameTableSize.php b/assets/actions/gameTableSize.php index ebe98e0cc4f72b90c37b601b4c256995d279273e..6d2f47eda808a64aeccaff989d4c2f9f2f428024 100644 --- a/assets/actions/gameTableSize.php +++ b/assets/actions/gameTableSize.php @@ -3,3 +3,7 @@ // utiliser le fichier Database.php pour charger le nombre de jeu total dans la base et le retourner en JSON. (1 points) require_once __DIR__ . '/../db/Database.php'; +//$totalJeux =($_POST); + +$db = new Database(); +$totalJeux = $db->getGameTableSize(); diff --git a/assets/actions/register.php b/assets/actions/register.php index c816c019d41381bc9d56fbdf1d4bcbc1d0ee349f..d6910291410be0b38ba8c58cc1b14bc312769514 100644 --- a/assets/actions/register.php +++ b/assets/actions/register.php @@ -6,3 +6,15 @@ */ require_once __DIR__ . '/../db/Database.php'; + +$db = new Database(); +$result = $db->register( + $_POST['username'], + $_POST['password'], +); + +if ($result) { + header('Location: /login.php'); +} else { + header('Location: /register.php?error=1'); +} diff --git a/assets/db/Database.php b/assets/db/Database.php index e24cb94ac718b10ebe58b24b37a036a2908c5cb9..a72c53f6cab9344cef0751c76427b381d8e0c0d1 100644 --- a/assets/db/Database.php +++ b/assets/db/Database.php @@ -33,6 +33,10 @@ class Database public function getGames() { // Charger ici les jeux de la base de données trois par trois + $statement = $this->pdo->prepare('SELECT * FROM game LIMIT 3'); + $statement->execute(); + + return $statement->fetchAll(); } /** @@ -51,6 +55,11 @@ class Database public function getGameTableSize() { // Retourner le nombre de jeux dans la base de données + $statement = $this->pdo->prepare('SELECT COUNT(*) total FROM game'); + $statement->execute(); + $total = $statement->fetchColumn(); + $resultat = (int) $total; + return $resultat; } /** @@ -61,6 +70,19 @@ class Database public function register($username, $password) { // Faire une fonction pour enregistrer un utilisateur dans la base de données. + if(preg_match('#^[a-z0-9.-_]+@[a-z0-9.-_]+\.[a-z]{2,}$#', $username) && + $this->checkField($username, true, ) && + $this->checkField($password, true,8, 255) + ) { + try { + $statement = $this->pdo->prepare('INSERT INTO user (username, password) VALUES (:username, :password)'); + $statement->bindValue(':username', htmlspecialchars($username), PDO::PARAM_STR); + $statement->bindValue(':password', $password, PDO::PARAM_STR); + return $statement->execute(); + } catch (Exception $e) { + return false; + } + } } public function login($username, $password) diff --git a/assets/js/loadGame.js b/assets/js/loadGame.js index 4f82f01fd05ae1abb7017ce828f4adfa6a6b6b35..626b1bda4e610de39c77935e0aa957f6e9c576ca 100644 --- a/assets/js/loadGame.js +++ b/assets/js/loadGame.js @@ -3,3 +3,34 @@ * ajouter une fonction pour charger, en ajax, la quantité totale de jeux dans la base ( API = /assets/actions/gameTableSize.php). (3 points) * ajouter un événement sur le bouton "Load more" pour lancer la fonction créée au premier point. (1 point) */ +const charger = document.querySelector('main button') + +charger.addEventListener("click", () => { + charger3jeux(); +}); + +const charger3jeux = async () => {} +try { + +} catch (error) { + +} +const NombreJeuxAJAX = async () => { + try { + const response = await fetch('/assets/actions/gameTableSize.php', { + method: 'POST', + }); + const data = await response.json(); + //logic fetch + console.log(data); + if (data.ok == 'true') { + location.href = '/index.php'; + } else { + const li = document.createElement('li'); + li.textContent = data.messages; + mess.appendChild(li); + } + } catch (error) { + console.log(error) + } +} \ No newline at end of file diff --git a/assets/locale/en.php b/assets/locale/en.php index 302d53af3c848723463b7432d9cdc02827223a5c..fb03be1769000bdd12e3e89ca0870c0f6c30df4c 100644 --- a/assets/locale/en.php +++ b/assets/locale/en.php @@ -23,6 +23,8 @@ $trad = [ ], 'register' => [ 'title' => 'Register', + 'username' => 'Username', + 'password' => 'Password', 'submit' => 'Register', ], 'admin' => [ diff --git a/assets/locale/fr.php b/assets/locale/fr.php index 96c508ad91b6ed36a2eeb780943f2e15875dd5a0..67ae6589849b12df587f59ac38464ba53bd1c2da 100644 --- a/assets/locale/fr.php +++ b/assets/locale/fr.php @@ -23,6 +23,8 @@ $trad = [ ], 'register' => [ 'title' => 'Inscription', + 'username' => 'Nom d\'utilisateur', + 'password' => 'Mot de passe', 'submit' => 'S\'inscrire', ], 'admin' => [ diff --git a/register.php b/register.php index 1dcff4356d30f2006708b18a056eacae73ba9a5e..697009ea69b64b907c4080334d8b9454687b3bbd 100644 --- a/register.php +++ b/register.php @@ -19,7 +19,11 @@ require_once __DIR__ . '/assets/template/nav.php'; ?> <!-- ajouter un formulaire pour permettre à l'utilisateur de s'inscrire sur le site. Attention un style existe déjà , utilisez une structure pour permettre de l'adapter au mieux. --> - <?php +$title = $translate->getTrad('register.title'); +$action = '/assets/actions/login.php'. (isset($_GET['target']) ? '?target=' . $_GET['target'] : ''); +$button = $translate->getTrad('register.submit'); +require_once __DIR__ . '/assets/template/registerLoginForm.php'; + require_once __DIR__ . '/assets/template/footer.php'; ?>