Bonjour !
J'ai décidé de créer un site web pour mettre des recettes de cuisine en ligne avec ma mère en utilisant php/MySQL, seulement j'ai un blocage :
Je souhaite ajouter une nouvelle recette grâce un formulaire qui est censé créer une entrée dans la table "recette" de ma base "recettes_defaye".
J'ai le formulaire suivant sur la première page :
Sur la seconde page, j'ai l'erreur Undefined variable lorsque je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <form method="post" action="ajout_recette.php" autocomplete="off"> <p> <label for="utilisateur">Prénom :</label> <select name="utilisateur" id="utilisateur"> <?php try { // On se connecte à MySQL $bdd = new PDO('mysql:host=localhost;dbname=recettes_defaye;charset=utf8', 'root', ''); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } $reponse = $bdd->query('SELECT prenom FROM user'); // On affiche chaque entrée une à une while ($donnees = $reponse->fetch()) { ?> <option value="<?php echo $donnees["prenom"] ; ?>"><?php echo $donnees["prenom"] ; ?></option> <?php } $reponse->closeCursor(); // Termine le traitement de la requête ?> </select> </p> <p> <label for="titre">Titre</label> : <input type="text" name="titre" id="titre" /> </p> <p> <label for="type">Type :</label> <select name="type" id="type"> <?php try { // On se connecte à MySQL $bdd = new PDO('mysql:host=localhost;dbname=recettes_defaye;charset=utf8', 'root', ''); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } $reponse = $bdd->query('SELECT nomtype FROM type'); // On affiche chaque entrée une à une while ($donnees = $reponse->fetch()) { ?> <option value="<?php echo $donnees["nomtype"] ; ?>"><?php echo $donnees["nomtype"] ; ?></option> <?php } $reponse->closeCursor(); // Termine le traitement de la requête ?> </select> </p> <p> <text <label for="ingredients">Ingrédients</label> : <textarea name="ingredients" id="ingredients"></textarea> </p> <p> <label for="preparation">Préparation</label> : <textarea type="textearea" name="preparation" id="preparation"></textarea> </p> <p> <label for="attention">Points d'attention</label> : <textarea type="textearea" name="attention" id="attention"></textarea> </p> <p> <label for="portions">Nombre de portions</label> : <input type="number" name="portions" id="portions" min="0" max="300" step="1" /> </p> <p> <label for="temps">Durée (en minutes)</label> : <input type="number" name="temps" id="temps" min="0" max="300" step="1" /> </p> <p> <label for="note">Note sur 5</label> : <input type="number" name="note" id="note" min="0" max="5" step="0.5" /> </p> <input type="submit" value="Valider" name="bouton" /> </form>
Je précise que lorsque je fais des echo ou var_dump sur les variables $idtype, $iduser, $titre, $portions, $ingredients, $preparation, $attention, $note, $temps : il me renvoie bien les valeurs attendues.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 **** <?php if (isset($_POST['type'])) { $idtype = $_POST['type']; } if (isset($_POST['utilisateur'])) { $iduser = $_POST['utilisateur']; } if (isset($_POST['titre'])) { $titre = $_POST['titre']; } if (isset($_POST['portions'])) { $portions = $_POST['portions']; } if (isset($_POST['ingredients'])) { $ingredients = $_POST['ingredients']; } if (isset($_POST['preparation'])) { $preparation = $_POST['preparation']; } if (isset($_POST['attention'])) { $attention = $_POST['attention']; } if (isset($_POST['note'])) { $note = $_POST['note']; } if (isset($_POST['temps'])) { $temps = $_POST['temps']; } try { // On se connecte à MySQL $bdd = new PDO('mysql:host=localhost;dbname=recettes_defaye;charset=utf8', 'root', ''); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } $bdd->exec("INSERT INTO recette(idtype, iduser, titre, portions, ingredients, preparation, attention, note, temps) VALUES($idtype, $iduser, $titre, $portions, $ingredients, $preparation, $attention, $note, $temps)"); ?>
Est-ce que vous savez d'où peut venir le problème ?
Merci par avance![]()
Partager