From f3707273fdf8282247fb2685de9896553ce40d05 Mon Sep 17 00:00:00 2001
From: vautrin33u <vautrin33u@etu.univ-lorraine.fr>
Date: Wed, 22 Dec 2021 00:02:54 +0100
Subject: [PATCH] =?UTF-8?q?ajout=20de=20css=20=20+=20requete=20SQL=20r?=
 =?UTF-8?q?=C3=A9cursive=20+=20stockage=20des=20images=20dans=20bdd?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 GestionUtilisateur.php |  72 -----------------------
 Requete.php            |   3 +-
 Service.php            | 130 +++++++++++++++++++++++++++++++++++++----
 configuration.php      |  16 +++++
 formulaire.js          |   8 +--
 install.php            |  40 ++++++++++---
 recettes.css           |   6 ++
 recettes.js            |  90 +++++++++++++++-------------
 8 files changed, 230 insertions(+), 135 deletions(-)
 delete mode 100644 GestionUtilisateur.php
 create mode 100644 configuration.php

diff --git a/GestionUtilisateur.php b/GestionUtilisateur.php
deleted file mode 100644
index 7699705..0000000
--- a/GestionUtilisateur.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php // Gestion de l'inscription 
-    session_start(); // début session
-
-// Réalise l'inscription si possible, puis la connexion
-function realiseInscription ($json){
-    $mysqli= new mysqli('127.0.0.1', 'root', '', 'Boissons') or die("Erreur : tables inaccessibles");
-
-    // Récupération depuis l'objet json
-    $nom = mysqli_real_escape_string ($mysqli, $json['nom']);
-    $prenom = mysqli_real_escape_string ($mysqli, $json['prenom']);
-    $sexe = mysqli_real_escape_string ($mysqli, $json['sexe']);
-    $email = mysqli_real_escape_string ($mysqli, $json['email']);
-    $pseudo = mysqli_real_escape_string ($mysqli, $json['pseudo']);
-    $password = mysqli_real_escape_string ($mysqli, $json['password']);
-
-    $res = $mysqli->query("INSERT INTO utilisateurs(nom, prenom, sexe, email, pseudo, password) VALUES ('{$nom}', '{$prenom}', '{$sexe}', '{$email}', '{$pseudo}', '{$password}')");
-    if ($res == true){ // si l'inscription fonctionne, préparation des éléments de sessions
-        $_SESSION['pseudo'] = $json['pseudo'];
-        $resultat = $mysqli->query("SELECT * FROM utilisateurs WHERE pseudo LIKE '{$pseudo}' AND password = '{$password}'");
-        $resultat = $resultat->fetch_assoc();
-        $_SESSION['id'] = $resultat['user_id'];
-    }
-    $mysqli->close();
-	return json_encode($res);
-}
-
-// Effectue la connexion
-function realiseConnexion ($json){
-    $mysqli= new mysqli('127.0.0.1', 'root', '', 'Boissons') or die("Erreur : tables inaccessibles");
-
-    // Récupération depuis l'objet json
-    $pseudo = mysqli_real_escape_string ($mysqli, $json['pseudo']);
-    $password = mysqli_real_escape_string ($mysqli, $json['password']);
-
-    $res = $mysqli->query("SELECT 1 FROM utilisateurs WHERE pseudo LIKE '{$pseudo}' AND password = '{$password}'");
-    if ($res->num_rows == 1){ 
-        $_SESSION['pseudo'] = $json['pseudo'];
-
-        $resultat = $mysqli->query("SELECT * FROM utilisateurs WHERE pseudo LIKE '{$pseudo}' AND password = '{$password}'");
-        $resultat = $resultat->fetch_assoc();
-        $_SESSION['id'] = $resultat['user_id'];
-
-
-        $favs = $mysqli->query("SELECT p.recette_id FROM utilisateurs u, panier p WHERE u.user_id = p.user_id AND u.user_id = {$resultat['user_id']}");
-        while($col = mysqli_fetch_assoc($favs)) {
-            $resultats[] = $col['recette_id'];
-        }
-        $_SESSION['panier'] = $resultats;
-
-        $out = true;
-    }else{
-        $out = false;
-    }
-    $mysqli->close();
-	return json_encode($out);
-}
-
-// Décode des fichiers issus de json et les utilise pour réaliser des opération 
-$in = file_get_contents('php://input');
-$decoded = json_decode($in, true);
-
-if (isset($decoded['mode'])){
-    if ($decoded['mode'] == 'inscription'){
-        echo realiseInscription($decoded);
-    }
-    if ($decoded['mode'] == 'connexion'){
-        echo realiseConnexion($decoded);
-    }
-    unset($decoded);
-}
-
-?>
diff --git a/Requete.php b/Requete.php
index b6371f2..60de5ba 100644
--- a/Requete.php
+++ b/Requete.php
@@ -1,7 +1,8 @@
 <?php
     session_start();
-    echo $_SESSION['id'];
+    echo "<pre>";
 
+    echo "</pre>";
 
 ?>
 
diff --git a/Service.php b/Service.php
index 2099124..5162e9b 100644
--- a/Service.php
+++ b/Service.php
@@ -1,11 +1,13 @@
 <?php
-
+include "configuration.php";
 session_start();
+
+
  /**
  * Se charge d'effectuer les requêtes et retourne un json
  */
 function queryDBB(string $str){
-	$mysqli= new mysqli('127.0.0.1', 'root', '', 'Boissons') or die("Erreur : tables inaccessibles");
+    $mysqli= connect_to_db();
 	$res = $mysqli->query($str);
 
 	$recettes = $res->fetch_all(MYSQLI_ASSOC);
@@ -13,6 +15,62 @@ function queryDBB(string $str){
 	return json_encode($recettes);
 }
 
+
+// Réalise l'inscription si possible, puis la connexion
+function realiseInscription ($json){
+    $mysqli= connect_to_db();
+
+    // Récupération depuis l'objet json
+    $nom = mysqli_real_escape_string ($mysqli, $json['nom']);
+    $prenom = mysqli_real_escape_string ($mysqli, $json['prenom']);
+    $sexe = mysqli_real_escape_string ($mysqli, $json['sexe']);
+    $email = mysqli_real_escape_string ($mysqli, $json['email']);
+    $pseudo = mysqli_real_escape_string ($mysqli, $json['pseudo']);
+    $password = mysqli_real_escape_string ($mysqli, $json['password']);
+
+    $res = $mysqli->query("INSERT INTO utilisateurs(nom, prenom, sexe, email, pseudo, password) VALUES ('{$nom}', '{$prenom}', '{$sexe}', '{$email}', '{$pseudo}', '{$password}')");
+    if ($res == true){ // si l'inscription fonctionne, préparation des éléments de sessions
+        $_SESSION['pseudo'] = $json['pseudo'];
+        $resultat = $mysqli->query("SELECT * FROM utilisateurs WHERE pseudo LIKE '{$pseudo}' AND password = '{$password}'");
+        $resultat = $resultat->fetch_assoc();
+        $_SESSION['id'] = $resultat['user_id'];
+    }
+    $mysqli->close();
+	return json_encode($res);
+}
+
+// Effectue la connexion
+function realiseConnexion ($json){
+    $mysqli= connect_to_db();
+
+    // Récupération depuis l'objet json
+    $pseudo = mysqli_real_escape_string ($mysqli, $json['pseudo']);
+    $password = mysqli_real_escape_string ($mysqli, $json['password']);
+
+    $res = $mysqli->query("SELECT 1 FROM utilisateurs WHERE pseudo LIKE '{$pseudo}' AND password = '{$password}'");
+    if ($res->num_rows == 1){ 
+        $_SESSION['pseudo'] = $json['pseudo'];
+
+        $resultat = $mysqli->query("SELECT * FROM utilisateurs WHERE pseudo LIKE '{$pseudo}' AND password = '{$password}'");
+        $resultat = $resultat->fetch_assoc();
+        $_SESSION['id'] = $resultat['user_id'];
+
+
+        $favs = $mysqli->query("SELECT p.recette_id FROM utilisateurs u, panier p WHERE u.user_id = p.user_id AND u.user_id = {$resultat['user_id']}");
+        while($col = mysqli_fetch_assoc($favs)) {
+            $resultats[] = $col['recette_id'];
+        }
+        $_SESSION['panier'] = $resultats;
+
+        $out = true;
+    }else{
+        $out = false;
+    }
+    $mysqli->close();
+	return json_encode($out);
+}
+
+
 function chercheTitres (string $nom){
     $requete = "SELECT titre FROM recettes WHERE titre LIKE '{$nom}%'";
 	echo queryDBB($requete);
@@ -21,18 +79,53 @@ function chercheTitres (string $nom){
 /**
  * Récupère les sous catégories
  */
+
 function getCategorie (string $req){
 	$requete = "SELECT sous_nom FROM hierarchie WHERE super_nom = '{$req}'";
 	echo queryDBB($requete);
 }
 
+/*
+function getCategorie (string $req){
+	//$requete = "SELECT sous_nom FROM hierarchie WHERE super_nom = '{$req}'";
+
+
+	$requete = "with recursive cte (sous_nom, super_nom) as (
+		SELECT     sous_nom, super_nom
+		FROM       hierarchie
+		WHERE      super_nom = '{$req}'
+		union all
+		SELECT		h.sous_nom, h.super_nom
+		FROM       hierarchie h
+		INNER JOIN cte
+				on h.super_nom = cte.sous_nom
+	)
+	select distinct sous_nom from cte;";
+
+	echo queryDBB($requete);
+
+
+}*/
+
 /**
- * Récupères les recettes 
+ * Récupères les recettes récursivement (MYSQL V8+!!)
  */
-function grabRecettes (string $req){
-	$requete = "SELECT DISTINCT r.id, r.titre, r.ingredients, r.preparation FROM recettes r, ingredientsderecettes ing WHERE ing.idBoisson = r.id AND ing.nomIngredient LIKE '{$req}'";
+function grabRecettes (string $req){	
+	$requete = "with recursive cte (sous_nom, super_nom) as (
+		SELECT     sous_nom, super_nom
+		FROM       hierarchie 
+		WHERE      super_nom = '{$req}'
+		union all
+		SELECT	   h.sous_nom, h.super_nom
+		FROM       hierarchie h
+		INNER JOIN cte	on h.super_nom = cte.sous_nom
+	)
+	SELECT DISTINCT r.id, r.titre, r.ingredients, r.preparation, r.photo FROM cte c, recettes r, ingredientsderecettes ing  
+	WHERE c.sous_nom = ing.nomIngredient AND ing.idBoisson = r.id ;";
+	
 	echo queryDBB($requete);
 }
+
 /**
  * Envoie l'image sélectionné parmi celles existantes ou rien 
  */
@@ -55,10 +148,10 @@ function loadImage (string $nom){
  */
 function getPanier (){
 	if (isset($_SESSION['id'])){ // si connecté
-		$requete = "select r.id, r.titre, r.preparation, r.ingredients from recettes r, panier p where p.recette_id = r.id AND p.user_id = {$_SESSION['id']}";
+		$requete = "SELECT r.id, r.titre, r.preparation, r.ingredients FROM recettes r, panier p WHERE p.recette_id = r.id AND p.user_id = {$_SESSION['id']}";
 		echo queryDBB($requete);
 	}else{
-		$requete = "select id, titre, preparation, ingredients from recettes where ";
+		$requete = "SELECT id, titre, preparation, ingredients FROM recettes WHERE ";
 		for ($i = 0; $i < count($_SESSION['panier']); $i++) {
 			if ($i < count($_SESSION['panier']) -1){
 				$requete .= "id = ". $_SESSION['panier'][$i]." OR ";
@@ -70,10 +163,13 @@ function getPanier (){
 	}
 }
 
+/**
+ * Ajouter aux favoris
+ */
 function addToCart ($req){
 	if (isset($_SESSION['id'])){ // Si un utilisateur est identifié
 
-		$mysqli= new mysqli('127.0.0.1', 'root', '', 'Boissons') or die("Erreur : tables inaccessibles");
+		$mysqli= connect_to_db();
 		$recette_id = mysqli_real_escape_string ($mysqli, $req);
 		$user_id = mysqli_real_escape_string($mysqli, $_SESSION['id']);
 		$requete = "INSERT INTO panier(user_id, recette_id)  VALUES ({$user_id}, {$recette_id})";
@@ -83,10 +179,13 @@ function addToCart ($req){
 	$_SESSION['panier'][] = $req;
 }
 
+/**
+ * Retirer une recette des favoris
+ */
 function removeFromCart ($req){
 	if (isset($_SESSION['id'])){ // Si un utilisateur est identifié
 
-		$mysqli= new mysqli('127.0.0.1', 'root', '', 'Boissons') or die("Erreur : tables inaccessibles");
+		$mysqli= connect_to_db();
 		$recette_id = mysqli_real_escape_string ($mysqli, $req);
 		$user_id = mysqli_real_escape_string($mysqli, $_SESSION['id']);
 		$requete = "DELETE FROM panier WHERE user_id = {$user_id} AND recette_id = {$recette_id}";
@@ -104,6 +203,16 @@ function removeFromCart ($req){
 $in = file_get_contents('php://input');
 $decoded = json_decode($in, true);
 
+if (isset($decoded['mode'])){
+    if ($decoded['mode'] == 'inscription'){
+        echo realiseInscription($decoded);
+    }
+    if ($decoded['mode'] == 'connexion'){
+        echo realiseConnexion($decoded);
+    }
+    unset($decoded);
+}
+
 if (isset($decoded['requete'])){
 	chercheTitres($decoded['requete']);
 	unset($decoded['requete']);
@@ -134,7 +243,8 @@ if (isset($decoded['panier'])){
 		if ($decoded['panier'] == 'get'){
 			getPanier();
 		}
-		
+		if ($decoded['panier'] == 'alreadyIn'){
+		}
 	}
 }
 
diff --git a/configuration.php b/configuration.php
new file mode 100644
index 0000000..ed38cf1
--- /dev/null
+++ b/configuration.php
@@ -0,0 +1,16 @@
+<?php // Gestion de l'inscription 
+
+/**
+ * Se connecte à la base de donnée
+ */
+function connect_to_db(){
+    $mysqli= new mysqli('127.0.0.1', 'root', '', 'Boissons') or die("Erreur : tables inaccessibles");
+    return $mysqli;
+}
+
+function install_bd(){
+    $mysqli = mysqli_connect('127.0.0.1', 'root', '') or die("Erreur de connexion");
+    return $mysqli;
+}
+
+?>
diff --git a/formulaire.js b/formulaire.js
index 2f5a882..5c4d0cd 100644
--- a/formulaire.js
+++ b/formulaire.js
@@ -1,6 +1,6 @@
 /**
  * Action qui se réalise automatiquement lorsque l'envoi du formulaire d'inscription a lieu
- * Vérifie les données puis les envoie (si possible) au serveur (GestionUtilisateur.php traite la demande)
+ * Vérifie les données puis les envoie (si possible) au serveur (Service.php traite la demande)
  */
 window.addEventListener("load", function (){
 
@@ -68,7 +68,7 @@ window.addEventListener("load", function (){
         console.log(input);
 
         const xhr = new XMLHttpRequest();
-        xhr.open("POST", "/GestionUtilisateur.php", true);
+        xhr.open("POST", "/Service.php", true);
         xhr.setRequestHeader("Content-Type", "application/json ; charset=UTF-8");
 
         // Vérifie si erreur lors de l'envoie du formulaire
@@ -186,7 +186,7 @@ window.addEventListener("load", function (){
 
 /**
  * Action qui se réalise automatiquement lorsque l'envoi du formulaire de connexion a lieu
- * Vérifie les données puis les envoie (si possible) au serveur (GestionUtilisateur.php traite la demande)
+ * Vérifie les données puis les envoie (si possible) au serveur (Service.php traite la demande)
  */
 window.addEventListener("load", function (){
 
@@ -229,7 +229,7 @@ window.addEventListener("load", function (){
 
 
         const xhr = new XMLHttpRequest();
-        xhr.open("POST", "/GestionUtilisateur.php", true);
+        xhr.open("POST", "/Service.php", true);
         xhr.setRequestHeader("Content-Type", "application/json ; charset=UTF-8");
 
         // Vérifie si erreur lors de l'envoie du formulaire
diff --git a/install.php b/install.php
index 4a73707..eed4e95 100644
--- a/install.php
+++ b/install.php
@@ -1,6 +1,6 @@
 <?php // Création d'une base de données
 
-
+include "configuration.php";
 
 function query($link,$requete)
   { 
@@ -10,7 +10,7 @@ function query($link,$requete)
 
 function loadDB(){
 	include("Donnees.inc.php");
-	$mysqli=mysqli_connect('127.0.0.1', 'root', '') or die("Erreur de connexion");
+	$mysqli= install_bd();
 
 	// Récupération des tableaux pour les insérer dans une base de données
 	if (isset($Recettes)) {
@@ -54,9 +54,9 @@ function loadDB(){
 		$ingred = mysqli_real_escape_string($mysqli, $colonne['ingredients']);
 		$prep = mysqli_real_escape_string($mysqli, $colonne['preparation']);
 		if (count($tabRecettes)-1 === $cmpt){
-			$str .= "INSERT INTO recettes VALUES (".$cmpt.", '".$titre."', '".$ingred."', '".$prep."')";
+			$str .= "INSERT INTO recettes(titre, ingredients, preparation) VALUES ('{$titre}', '{$ingred}', '{$prep}')";
 		}else{
-			$str .= "INSERT INTO recettes VALUES (".$cmpt.", '".$titre."', '".$ingred."', '".$prep."');  ";
+			$str .= "INSERT INTO recettes(titre, ingredients, preparation) VALUES ('{$titre}', '{$ingred}', '{$prep}');  ";
 		}
 
 		while ($ingred = current($colonne['index'])){
@@ -67,7 +67,31 @@ function loadDB(){
 		$valeur++;
 	}
 
-
+		// Ajout des images à la table des recettes
+		$tab[] = array ("image" => "Photos/Black_velvet.jpg", "nom" => "Black velvet");
+		$tab[] = array ("image" => "Photos/Bloody_mary.jpg", "nom" => "Bloody Mary");
+		$tab[] = array ("image" => "Photos/Bora_bora.jpg", "nom" => "Bora bora");
+		$tab[] = array ("image" => "Photos/Builder.jpg", "nom" => "Builder");
+		$tab[] = array ("image" => "Photos/Caipirinha.jpg", "nom" => "Caïpirinha");
+		$tab[] = array ("image" => "Photos/Coconut_kiss.jpg", "nom" => "Coconut kiss");
+		$tab[] = array ("image" => "Photos/Cuba_libre.jpg", "nom" => "Cuba libre");
+		$tab[] = array ("image" => "Photos/Frosty_lime.jpg", "nom" => "Frosty lime");
+		$tab[] = array ("image" => "Photos/Le_vandetta.jpg", "nom" => "Le vandetta");
+		$tab[] = array ("image" => "Photos/Margarita.jpg", "nom" => "Margarita");
+		$tab[] = array ("image" => "Photos/Mojito.jpg", "nom" => "Mojito");
+		$tab[] = array ("image" => "Photos/Pina_colada.jpg", "nom" => "Piña Colada");
+		$tab[] = array ("image" => "Photos/Raifortissimo.jpg", "nom" => "Raifortissimo");
+		$tab[] = array ("image" => "Photos/Screwdriver.jpg", "nom" => "Screwdriver");
+		$tab[] = array ("image" => "Photos/Shoot_up.jpg", "nom" => "Shoot up");
+		$tab[] = array ("image" => "Photos/Tequila_sunrise.jpg", "nom" => "Tequila sunrise");
+		$tab[] = array ("image" => "Photos/Tipunch.jpg", "nom" => "Ti'punch");
+			
+		for ($cmpt = 0; $cmpt< count($tab); $cmpt++){
+			$img = mysqli_real_escape_string($mysqli, $tab[$cmpt]['image']);
+			$nom = mysqli_real_escape_string($mysqli, $tab[$cmpt]['nom']);
+			echo $img.' '.$nom;
+			$str .= "UPDATE recettes SET photo='{$img}' WHERE titre LIKE '{$nom}';  ";
+		}
 
 
 	$base="Boissons";
@@ -80,7 +104,8 @@ function loadDB(){
 				id INT AUTO_INCREMENT PRIMARY KEY, 
 				titre VARCHAR(255) NOT NULL, 
 				ingredients VARCHAR(1024) NOT NULL, 
-				preparation VARCHAR(4096) NOT NULL
+				preparation VARCHAR(4096) NOT NULL,
+				photo VARCHAR(255) NULL
 			);  
 			
 			CREATE TABLE IF NOT EXISTS utilisateurs (
@@ -121,13 +146,10 @@ function loadDB(){
 				FOREIGN KEY (recette_id) REFERENCES recettes(id),
 				UNIQUE (user_id, recette_id)
 			);  
-
-
 			".$str;
 
 
 	foreach(explode(';  ',$Sql) as $Requete) query($mysqli,$Requete);
-
 	mysqli_close($mysqli);
 }
 loadDB();
diff --git a/recettes.css b/recettes.css
index 89819d2..6422deb 100644
--- a/recettes.css
+++ b/recettes.css
@@ -51,3 +51,9 @@ position: fixed;
 margin-right:2em;
 right:0;
 }
+
+#panier{
+    position: fixed;
+    margin-right:2em;
+    right:0;
+}
diff --git a/recettes.js b/recettes.js
index fe11ef9..e135542 100644
--- a/recettes.js
+++ b/recettes.js
@@ -60,10 +60,8 @@ function ajoutFormulaire(parent, recette){
         // Vérification des résultats
         xhr.onreadystatechange = function(){
             if (xhr.readyState === 4 && xhr.status === 200){
-                let resultat = JSON.parse(xhr.response);
                 cancel.disabled = true;
                 add.disabled = false;
-        
             }
         } 
         xhr.send(JSON.stringify(input));
@@ -89,46 +87,60 @@ function afficheRecettes(recette){
 
     // parcours de toutes les recettes contenu dans l'objet
     for (var i = 0; i<recette.length; i++){
-        // Création des éléments titre / paragraphe / liste
-        let conteneur = document.createElement('span'); // Contient les éléments html d'une recette
-        let image = document.createElement('img'); // image
-        let titre = document.createElement('h2'); // titre de niveau 2
-        let paragraph = document.createElement('p'); // paragraphe contenant la liste et description
-        var liste = document.createElement('ul'); // liste
-
-        liste.innerHTML += "Ingrédients :";
-
-        // Récupération du contenu    
-        titre.textContent = recette[i].titre;
-        paragraph.textContent = recette[i].preparation;
-        let ingredients = recette[i].ingredients.split("|");
-        for (var j = 0; j<ingredients.length; j++){
-            liste.innerHTML += "<li>"+ingredients[j]+"</li>";
-        }
+        // Supprime les éléments déjà existants avec le même nom
+        let existe = document.getElementById(recette[i].id);
+        if (existe == null){
+        //existe.parentNode.removeChild(existe);
+
 
-        const search = recette[i].titre;
-        // Génère l'objet de requête à envoyer au serveur (traiter par Service.php) : le nom de la recette
-        const input = {
-            images : search
-        };
-        // Envoie de la requête
-        var xhr = new XMLHttpRequest();
-        xhr.open('POST', "/Service.php", true);
-        xhr.onload = () => {
-            if (xhr.response != null){
-                image.src = xhr.responseText;
-            } 
-        };
 
-        xhr.send(JSON.stringify(input)); 
+            // Création des éléments titre / paragraphe / liste
+            let conteneur = document.createElement('span'); // Contient les éléments html d'une recette
+            conteneur.id = recette[i].id;        
+            let titre = document.createElement('h2'); // titre de niveau 2
+            let paragraph = document.createElement('p'); // paragraphe contenant la liste et description
+            var liste = document.createElement('ul'); // liste
 
-        // Ajout à la div de recettes
-        div.append(conteneur);
-        conteneur.append(titre);
-        conteneur.append(image);
-        conteneur.append(paragraph);
-        paragraph.append(liste);
-        ajoutFormulaire(paragraph, recette[i]);
+            liste.innerHTML += "Ingrédients :";
+
+            // Récupération du contenu    
+            titre.textContent = recette[i].titre;
+            paragraph.textContent = recette[i].preparation;
+            let ingredients = recette[i].ingredients.split("|");
+            for (var j = 0; j<ingredients.length; j++){
+                liste.innerHTML += "<li>"+ingredients[j]+"</li>";
+            }
+
+            /*
+            const search = recette[i].titre;
+            // Génère l'objet de requête à envoyer au serveur (traiter par Service.php) : le nom de la recette
+            const input = {
+                images : search
+            };
+            // Envoie de la requête
+            var xhr = new XMLHttpRequest();
+            xhr.open('POST', "/Service.php", true);
+            xhr.onload = () => {
+                if (xhr.response != null){
+                    image.src = xhr.responseText;
+                } 
+            };
+
+            xhr.send(JSON.stringify(input)); 
+            */
+            // Ajout à la div de recettes
+            div.append(conteneur);
+            conteneur.append(titre);
+            if (recette[i].photo != null){
+                let image = document.createElement('img'); // image
+                image.src = recette[i].photo;
+                conteneur.append(image);
+
+           } 
+            conteneur.append(paragraph);
+            paragraph.append(liste);
+            ajoutFormulaire(paragraph, recette[i]);
+        }
     }
     
 }
-- 
GitLab