Ajouter des commentaires sur une meme page php ?
Résolu
Mouslim02
Messages postés
320
Date d'inscription
Statut
Membre
Dernière intervention
-
Mouslim02 Messages postés 320 Date d'inscription Statut Membre Dernière intervention -
Mouslim02 Messages postés 320 Date d'inscription Statut Membre Dernière intervention -
bonjours a tous
j'ai fait une page qui propose des produits, elle se conecte a une base de donnée et suivant l'id elle affiche le produit voulu mais aussi elle montre les commentaires postés a propos du produit
voila mon code source
et voila la page qui sert a enregistrer les nouveaux commentaires
déja mon probleme c'est le "header ("location : fichetech.php?id...")" je voudrais mettre une variable dans le id pour qu'il me redirect a la page d'avant
et aussi je souhaiterais apprendre a ne faire qu'une seule page, est ce possible ? je voudrais eviter les deux page et la redirection
merci
j'ai fait une page qui propose des produits, elle se conecte a une base de donnée et suivant l'id elle affiche le produit voulu mais aussi elle montre les commentaires postés a propos du produit
voila mon code source
<?php if (!isset($_GET['id'])) { $_GET['id']=1; } try { $bdd = new PDO('mysql:host=localhost;dbname=aroma', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $reponse = $bdd->query('SELECT nom FROM patis WHERE id=\'' . $_GET['id'] . '\''); $point=0; $id = $_GET['id']; while ($donnees = $reponse->fetch()) { $nom = $donnees['nom']; } $reponse->closeCursor(); ?> <title><?php echo $nom; ?> fiche AROMA</title> </head> <body> <header> <?php include("tete.php"); ?> </header> <section> <?php include("menu.php"); ?> <article> <?php try { $bdd = new PDO('mysql:host=localhost;dbname=aroma', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $id = $_GET['id']; $reponse = $bdd->query('SELECT * FROM patis WHERE id=\'' . $_GET['id'] . '\''); $point=0; while ($donnees = $reponse->fetch()) { if (!empty($donnees['description'])) { $desc = $donnees['description']; } else { $desc = 'pas de description'; } echo "<h3>Nom : " . $donnees['nom'] . "</h3>"; echo "<p>Date d'ajout : " . $donnees['date'] . "</p>"; echo "<p><img src='" . $donnees['url'] . "' title='" . $donnees['nom'] . "' /></p>"; echo "<p>Description : " . $desc . "</p>"; $point=$point+1; } if ($point == 0) { echo "<p>Aucune patisserie n'a été séléctionnée</p>"; } $reponse->closeCursor(); ?> <h4>Les derniers commentaires :</h4> <?php try { $bdd = new PDO('mysql:host=localhost;dbname=aroma', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $reponse = $bdd->query('SELECT * FROM comment WHERE value=\'true\' AND id_patis=\'' . $_GET['id'] . '\' ORDER BY ID DESC'); $point=0; while ($donnees = $reponse->fetch()) { echo '<p id="voir"><strong>' . htmlspecialchars($donnees['nom']) . '</strong> <br/>' . htmlspecialchars($donnees['date']) . '<br/> commentaire : ' . nl2br(htmlspecialchars($donnees['message'])) . '<br/> </p>'; $point=$point+1; } if ($point == 0) { echo "<p>Aucun commentaire n'est posté, soyez le premier a vous exprimer...</p>"; } $reponse->closeCursor(); ?> <h4>Poster un commentaire :</h4> <form method="post" action="fichetechsub.php?id=<?php echo $id; ?>"> <label for="nom" >Votre nom : </label><br/> <input type="text" name="nom" required><br/> <label for="mail" >Votre mail : </label><br/> <input type="mail" name="mail" required><br/> <label style="vertical-align: top;">Votre commentaire : </label><br/> <textarea rows="10" cols="50" name="message"></textarea><br/> <input type="submit" value="Envoyer"> </form> </div>
et voila la page qui sert a enregistrer les nouveaux commentaires
<?php try { $bdd = new PDO('mysql:host=localhost;dbname=aroma', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $req = $bdd->prepare('INSERT INTO comment (id_patis, nom, mail, date, message, value) VALUES(?, ?, ?, now(), ?, ?)'); $req->execute(array(htmlspecialchars($_GET['id']), htmlspecialchars($_POST['nom']), htmlspecialchars($_POST['mail']), htmlspecialchars($_POST['message']), 'false')); header("Location: fichetech.php?id=?????"); ?>
déja mon probleme c'est le "header ("location : fichetech.php?id...")" je voudrais mettre une variable dans le id pour qu'il me redirect a la page d'avant
et aussi je souhaiterais apprendre a ne faire qu'une seule page, est ce possible ? je voudrais eviter les deux page et la redirection
merci
A voir également:
- Ajouter des commentaires sur une meme page php ?
- Comment supprimer une page sur word - Guide
- Imprimer tableau excel sur une page - Guide
- Ajouter un commentaire sur word - Guide
- Ajouter une signature sur word - Guide
- Créer une page facebook - Guide
3 réponses
Attttttention aux injections SQL !
Ce genre de ligne sont très dangereuses !
$reponse = $bdd->query('SELECT * FROM patis WHERE id=\'' . $_GET['id'] . '\'');
Ce genre de ligne sont très dangereuses !
$reponse = $bdd->query('SELECT * FROM patis WHERE id=\'' . $_GET['id'] . '\'');
Pour le header, si l'id en get c'est celui de la page, ça ne pose pas de problème de faire une concaténation :
Et sinon pour tout faire en une page t'es obligé de faire de l'ajax (puisque le formulaire du commentaire est côté client, et le traitement, donc le php, côté serveur).
header("Location: fichetech.php?id=".$_GET['id']);
Et sinon pour tout faire en une page t'es obligé de faire de l'ajax (puisque le formulaire du commentaire est côté client, et le traitement, donc le php, côté serveur).
De rien !
Pour faire de l'ajax, ce sera + simple d'utiliser la bibliothèque jQuery.
Téléchargement : https://jquery.com/download/
Utilisation d'ajax : https://api.jquery.com/jQuery.ajax/
Faut bien comprendre le principe :
1) la fonction qui gère ajax est appelée par un événement
2) elle appelle un fichier php en lui passant des paramètres, par get ou post
3) le fichier php en question reçoit les paramètres par les super-globales ($_GET ou $_POST)
4) le php écrit un fichier (moi je le fais souvent en json, c'est très pratique) et le retourne à la fonction js qui l'a appelé
5) cette fonction traite le résultat (c'est là que le json est pratique) et fait les modifs nécessaires.
Pour faire de l'ajax, ce sera + simple d'utiliser la bibliothèque jQuery.
Téléchargement : https://jquery.com/download/
Utilisation d'ajax : https://api.jquery.com/jQuery.ajax/
Faut bien comprendre le principe :
1) la fonction qui gère ajax est appelée par un événement
2) elle appelle un fichier php en lui passant des paramètres, par get ou post
3) le fichier php en question reçoit les paramètres par les super-globales ($_GET ou $_POST)
4) le php écrit un fichier (moi je le fais souvent en json, c'est très pratique) et le retourne à la fonction js qui l'a appelé
5) cette fonction traite le résultat (c'est là que le json est pratique) et fait les modifs nécessaires.