Bonjour, je suis débutant en PHP et je rencontre un problème sur un blog que j'essaye de développer dans une arborescence mvc.
J'ai une page sur laquelle je peux publier un article - à laquelle j'accède après m'être identifié qui incrémente une base de données - en croisant les données d'une autre table - à partir d'un formulaire. Elle affiche également les articles déjà stockés dans la table de ma base (que j'ai incrémenté "manuellement").
Tout semble bien se passer - je n'ai pas de message d'erreur qui s'affiche lorsuqe j'envoi un article - hormis que les données qui sont transmises par le formulaire ne sont pas incrémentées dans ma table 'cible'
Voici le code de la page qui contient le formulaire d'envoi des données à la base :
et voici le code de la page qui traite les données envoyées par ma page article pour les mettre dans la base de données :
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 <meta charset="utf-8"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Derniers articles du blog</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link href="vue/blog/style.css" rel="stylesheet" type="text/css" /> </head> <body> <fieldset> <form action="../../modele/blog/traitement.php" method="POST"> <p> <?php include_once('../../modele/connexion_sql.php'); $champcategorie='<select name="id">' ; $champcategorie.='<option value="'.'">'.'< Choisissez votre catégorie >'.'</option>'; $reponse = $bdd->query("SELECT id FROM categorie"); while ($donnees = $reponse->fetch()) { //la concatenation des champs se fait ici $champcategorie.='<option value="'.$donnees['id'].'">'.$donnees['id'].'</option>'; } echo $champcategorie; ?> </select> </p> <p><label> pseudo : </label> <input type="text" name="pseudo" value="<?php if(isset($_COOKIE['pseudo'])) echo $_COOKIE['pseudo']; ?>" placeholder="Votre pseudo ici" /><p> <p><label> Titre de votre article : </label> <input type="text" name="titre_article" id="titre_article"></textarea></p> <p><label> Texte de votre article </label> <textarea name="texte_article" id="texte_article">un texte par defaut ...</textarea></p> <p> <input type="submit"/></p> </form> </fieldset> <p>Derniers articles du blog :</p> <?php include_once('../../controleur/blog/article.php'); foreach($billets as $billet) { ?> <div class="news"> <h3> <?php echo $billet['titre_article']; ?> <em>le <?php echo $billet['date_redaction_fr']; ?></em> </h3> <p> <?php echo $billet['texte_article']; ?> <br /> </p> </div> <?php } ?> </body> </html>
Comme annoncé plus haut, je n'obtiens pas de message d'erreur mais mes données ne sont pas incrémentées dans ma table ...
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 <?php include_once('../connexion_sql.php'); if (isset ($_POST['nom']) AND($_POST['pseudo']) AND ($_POST['titre_article']) AND ($_POST['texte_article'])) { $nom = htmlspecialchars(trim($_POST['nom'])); $pseudo = htmlspecialchars(trim($_POST['pseudo'])); $titre_article = htmlspecialchars(trim($_POST['titre_article'])); $texte_article = htmlspecialchars(trim($_POST['texte_article'])); $requete = $bdd->prepare('INSERT INTO categorie_article(categorie_id, pseudo, titre_article, texte_article, date_creation) VALUES(?, ?, ?, ?, NOW()) INNER JOIN Categorie ON categorie_article.categorie_id = categorie.nom'); $requete->execute(array(htmlspecialchars($_POST['nom']),htmlspecialchars($_POST['pseudo']), htmlspecialchars($_POST['titre_article']), htmlspecialchars($_POST['texte_article']))); } header('Location: ../../blog.php'); ?>
Quelqu'un pourrait-il m'aider en me disant ce qui ne marche pas dans mes scripts ?
Merci par avance.
Partager