Recuperer un id avec $_GET

Fermé
satoshioctav Messages postés 7 Date d'inscription mercredi 19 décembre 2018 Statut Membre Dernière intervention 25 décembre 2018 - 25 déc. 2018 à 15:30
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 25 déc. 2018 à 16:58
bonjour

je fais un espace commentaire sur des blog sur une page différente que les blog, du coup j'ai dans ma base de donnees commentaire un champs id_billet qui est censé correspondre au id du blog et dans ma classe qui traite l'ajout de comentaire le billet id_billet correspond a $_GET['id'] j'ai bien entendu envoyé le id du billet dublog via l'url mais le commentaire ne se rajoute pas voici les code;

l'envoie du id par l'url
<a href="../commentaire_blog/indexcommentaire.php?id=<?php echo $blog->id();?>" >commentaire</a><br>

le traitement de l'ajout de commentaire
 public function add(commentaire_blog $commentaire)
  {
    $req = $this->db->prepare('INSERT INTO commentaire (id_billet, auteur, contenu, date_commentaire) VALUE (:id_billet, :auteur, :contenu, NOW())');
    $req->bindValue(':id_billet',(int)$_GET['id']);
    $req->bindValue(':auteur', $commentaire->auteur(PDO::PARAM_STR));
    $req->bindValue(':contenu', $commentaire->contenu(PDO::PARAM_STR));


    $req->execute();
  }

le formulaire d'ajout de commentaire
<!DOCTYPE html>
<html>
<head>
	<title>commentaire</title>
</head>
<body>
	<a href="../billet_blog/indexblog.php">retourné</a>
	<form action="indexcommentaire.php" method="post">
		<input type="text" name="nom" placeholder="nom"><br>
		<textarea rows="4" cols="30" placeholder="laisser votre commentaire" name="commentaire"></textarea><br>
		<input type="submit" name="action" value="ajouter" >
		
	</form>

	<?php 
require '../billet_blog/managerblog.php';		
require 'manager_commentaire.php';
require 'commentaire_blog.php';
  try
  {
	  $db = new PDO('mysql:host=localhost;dbname=test;charset = utf8','root','');
      $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  }
  catch (Exception $e)

  {
      die('Erreur : ' . $e->getMessage());
  }


$manager = new manager_commentaire($db);

 

if (isset($_GET['id'])) 
{
	
	 if (isset($_POST['nom']) && isset($_POST['commentaire']))
     {   
	    $commentaire = new commentaire_blog($_POST['nom'],$_POST['commentaire']);
	    $manager->add($commentaire);
	    echo 'le commentaire a bien été ajouter'.'<br>';
     }
     else
     {
     	echo 'Erreur: l\'ajout de commentaire a echoué'.'<br>';
     }

}


	

  
$commentaires = $manager->get();

foreach ($commentaires as  $commentaire) 
 {
	echo $commentaire->auteur().'<br>';
	echo $commentaire->contenu().'<br>';
	echo $commentaire->date_commentaire().'<br><br><br>';
 }


?>

</body>
</html>

merci de votre aides

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
25 déc. 2018 à 15:45
Ca ne sert à rien d'ouvrir tes questions en double sur le forum....
Tu as déjà posé ta question ici : https://forums.commentcamarche.net/forum/affich-35758814-fonction-update-qui-fontionne-pas

Ce à quoi je t'ai répondu :

Vu que tu fais du PDO.. gère les éventuelles erreurs ... https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

Et ça :

Il serait bien également de récupérer proprement les variables AVANT de les utiliser. (je t'invite à lire ceci : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code)


et enfin ça :

as tu essayé de voir ce que contenait ta variable
$_GET et ta variable $_POST lorsque tu envoies pour modification ??
- Es-tu sûr d'entré dans ton IF ???? ( places y un echo voir si il s'affiche...).


Force est de constater que tu n'as tenu compte d'aucune de ces remarques .....
Ne t'étonne pas alors de ne pas y arriver !

Donc commence par suivre scrupuleusement ce qu'on te dit... et tu devrais trouver la solution à ton problème !


NB: La prochaine fois, je supprime TOUTES les discussions ouvertes en double !

0
satoshioctav Messages postés 7 Date d'inscription mercredi 19 décembre 2018 Statut Membre Dernière intervention 25 décembre 2018
25 déc. 2018 à 16:33
mais j'ai activer les erreur avec $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
et try-catch
0
satoshioctav Messages postés 7 Date d'inscription mercredi 19 décembre 2018 Statut Membre Dernière intervention 25 décembre 2018
25 déc. 2018 à 16:35
et j'essayerais de faire attention pour récupérer les variable
0
satoshioctav Messages postés 7 Date d'inscription mercredi 19 décembre 2018 Statut Membre Dernière intervention 25 décembre 2018
25 déc. 2018 à 16:44
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > satoshioctav Messages postés 7 Date d'inscription mercredi 19 décembre 2018 Statut Membre Dernière intervention 25 décembre 2018
25 déc. 2018 à 16:58
ce sont exactement les mêmes soucis.
Même si là c'est un INSERT....

Le try/catch à la connexion ne suffit pas.... il faut aussi en mettre à CHAQUE requête (comme cela est indiqué dans le lien que je t'ai donné).
Sans oublié l'activation de l'affichage des erreurs PHP....

Sans oublié de vérifier le contenu de tes variables (via des PRINT_R au début de ton script par exemple) et un echo dans le IF ...


Bref... reviens nous voir avec le code correctement modifié suite à mes remarques si le souci persiste....
0