From 2c03c5abf7ad61a6229de2e555b3aa5049ebcd00 Mon Sep 17 00:00:00 2001
From: YanisMoulla <yanis.moulla@etu.unistra.fr>
Date: Tue, 6 Dec 2022 09:36:25 +0100
Subject: [PATCH] rendu exam

---
 "R\303\251poses"            |  9 +++++++++
 assets/actions/register.php | 38 +++++++++++++++++++++++++++++++++++++
 assets/js/loadGame.js       | 24 +++++++++++++++++++++++
 index.php                   | 16 +++++++++++++---
 register.php                | 16 ++++++++++++++++
 5 files changed, 100 insertions(+), 3 deletions(-)
 create mode 100644 "R\303\251poses"

diff --git "a/R\303\251poses" "b/R\303\251poses"
new file mode 100644
index 0000000..815cff7
--- /dev/null
+++ "b/R\303\251poses"
@@ -0,0 +1,9 @@
+Question 1: Quel est le protocole utilisé pour communiquer avec le serveur ?
+ 
+   ->  c'est le protocol TCP.
+
+Question 2: JS est un langage asynchrone ou synchrone ? Expliquez.
+
+   ->  il est les deux; 
+   dans celui ci, l'execution est synchrone, c'est à dire que l'execution s'effectue ligne par ligne de haut en bas, mais chaque ligne peut être 
+   asynchrone du fait que lorsqu'elle soit executé et que son execution prends du temps, la ligne suivante n'a pas à l'attendre pour s'executer. 
\ No newline at end of file
diff --git a/assets/actions/register.php b/assets/actions/register.php
index c816c01..e531277 100644
--- a/assets/actions/register.php
+++ b/assets/actions/register.php
@@ -6,3 +6,41 @@
  */
 
 require_once __DIR__ . '/../db/Database.php';
+
+
+
+
+    function register($username, $mot_de_passe, $re_mot_de_passe){
+        $pseudo = htmlspecialchars($username);
+            $mdp = htmlspecialchars($mot_de_passe);
+            $re_mdp = htmlspecialchars($re_mot_de_passe);
+
+            $check = $pdo->prepare('SELECT pseudo, password, isAdmin FROM users WHERE pseudo = ?');//$query_users_connexion
+            $check->execute(array($pseudo));
+            $data_user = $check->fetch();//PDO::FETCH_ASSOC
+            $row = $check->rowCount();
+
+            if($row ==0){
+
+                if((strlen($mdp)>=8) && ($mdp == $re_mdp)){
+                    $mdp = hash('sha256', $mdp);
+                    $insert = $pdo->prepare('INSERT INTO users(pseudo, password, isAdmin) VALUES(:pseudo, :password, :isAdmin)');//$query_users_inscription
+                    $insert->execute(array(
+                        'pseudo'=>$pseudo,
+                        'password'=>$mdp,
+                        'isAdmin'=>$isAdmin    
+                    ));
+                    header('Location:login.php');
+                }
+                if($mdp != $re_mdp){echo "--- Les 2 mots de passe ne sont pas identique ---";
+                    header('Location:register.php');}
+                if(strlen($mdp)<8){echo "--- Le mot de passe saisi est trop court: 8 caractères minimum ---";
+                    header('Location:register.php');}
+            }else {
+                header('Location:register.php');
+                echo "Vous êtes déja inscrit";}
+        }
+
+    
+
+?>
\ No newline at end of file
diff --git a/assets/js/loadGame.js b/assets/js/loadGame.js
index 4f82f01..3b66c21 100644
--- a/assets/js/loadGame.js
+++ b/assets/js/loadGame.js
@@ -3,3 +3,27 @@
  * 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)
  */
+
+ function loadgames(str)
+ {
+ if (str=="")
+
+ if (window.XMLHttpRequest)
+   {
+   xmlhttp=new XMLHttpRequest();
+   }
+ else
+   {
+   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
+   }
+ xmlhttp.onreadystatechange=function()
+   {
+   if (xmlhttp.readyState==4 && xmlhttp.status==200)
+     {
+     document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
+     }
+   }
+ xmlhttp.open("GET","getuser.php?q="+str,true);
+ xmlhttp.send();
+ }
+ 
\ No newline at end of file
diff --git a/index.php b/index.php
index 3641d20..fe9068d 100644
--- a/index.php
+++ b/index.php
@@ -2,6 +2,8 @@
 require_once __DIR__ . '/assets/locale/Translate.php';
 $translate = new Translate('fr');
 
+
+
 $specificCSS = '
 <link rel="stylesheet" href="assets/css/index.css"/>
 ';
@@ -10,6 +12,14 @@ $specificJS = '
 <script src="assets/js/loadGame.js" type="module" defer></script>
 ';
 
+
+require_once '/assets/db/Databasephp';
+$q=$_GET["q"];
+$compteur;
+
+
+
+
 require_once __DIR__ . '/assets/template/head.php';
 ?>
 
@@ -21,9 +31,9 @@ require_once __DIR__ . '/assets/template/head.php';
 
 <main>
   <h2><?= $translate->getTrad('home.subtitle') ?></h2>
-
-  <section></section>
-
+<?php for($compteur=0; $compteur<=$q; $compteur++):?>
+  <section> <?= getGame($compteur)['game']; ?></section>
+<?php endfor?>
   <button>
     <?= $translate->getTrad('home.loadMore') ?>
   </button>
diff --git a/register.php b/register.php
index 1dcff43..db62aff 100644
--- a/register.php
+++ b/register.php
@@ -19,6 +19,22 @@ 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. -->
+<div>
+  <h1>Connection</h1>
+  <form method="post">
+      <input type="text" name="pseudo" id="pseudo" placeholder="Votre pseudo" required>
+      <input type="password" name="password" id="password" placeholder="Votre mot de passe" required>  
+      <input type="password" name="re_password" id="re_password" placeholder="Votre mot de passe à nouveau" required>  
+      <input type="submit" name="inscription" id="inscription">
+  </form>
+</div>
+
+<php? 
+require_once '/assets/actions/register.php'; 
+register($_POST['pseudo'], $_POST['password'], $_POST['re_password']);
+?>
+
+
 
 <?php
 require_once __DIR__ . '/assets/template/footer.php';
-- 
GitLab