[RESOLU] Problème code commentaire

Eléphanteau du PHP | 17 Messages

09 déc. 2018, 19:36

Bonsoir, je suis nouveau et je suis face à un problème avec un code pour afficher des commentaires que j'ai depuis un sacré bout d'temps maintenant.
Le code ne m'affiche pas d'erreurs mais il me retourne ":" J'avais pensé à mettre l'affichage de mes commentaires dans le while mais comment introduire du html la dedans et est ce que ça va marcher?
   <h2>Les commentaires</h2>
   <?php
$c = $commentaires->fetch();
$grosMots = array('tes'); 
$remplacement = '#&$@!'; 
?>

<?php if(isset($c_msg)) { echo $c_msg; } ?>
<br /><br />
<?php while($c = $commentaires->fetch()) {
$c = str_replace($grosMots, $remplacement, $c['commentaire']); }
 ?>
   <b><?= $c['pseudo'] ?>:</b> <?= $c['commentaire'] ?><br/><br/>


<?php } ?>
<?php

?>

Mammouth du PHP | 2703 Messages

09 déc. 2018, 19:41

<?php if(isset($c_msg)) { echo $c_msg; } ?>
cela affiche quelque chose le cas échéant ? si oui, alors c'est un exemple de code qui fonctionne pour afficher quelque chose.

<?= $c['pseudo'] ?>
vous dites que cela n'affiche rien, donc c'est un exemple de code qui ne fonctionne pas pour afficher quelque chose.

Eléphanteau du PHP | 17 Messages

09 déc. 2018, 20:06

<?php if(isset($c_msg)) { echo $c_msg; } ?> ce code affiche des messages lors du post du commentaire : commentaire postée , tous les champs doivent être remplis... Il est lié au formulaire que j'ai fait pour poster un commentaire
<?= $c['pseudo'] ?>:</b> <?= $c['commentaire'] ?> Le code affiche juste deux points ':' .

Mammouth du PHP | 1967 Messages

12 déc. 2018, 11:42

c'est parce que le code simplifié <?= n'est pas activé sur le serveur.
c'est d'ailleurs pas le plus indiqué. remplace cela par <?php echo voir même par <?php if(isset($variable)) {echo $variable;}?> pour éviter le risque d'erreur de type Notice
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 17 Messages

13 déc. 2018, 00:04

Bonsoir, j'ai essayé les alternatives que tu m'as proposé mais ça me retourne le même résultat.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

13 déc. 2018, 00:15

Fais un var_dump($c['commentaire']); pour voir si ce ne serait pas ta variable qui serait vide à tout hasard
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 17 Messages

13 déc. 2018, 00:34

Effectivement avec le var_dump je retrouve un résultat null
C'est le fetch qui vide la variable à chaque fois non ? Que faire?

Mammouth du PHP | 1967 Messages

13 déc. 2018, 10:03

en effet, tu dois mettre ton affichage dans ta boucle.

et en plus tu écrase ta variable $c avec ton str_replace du coup $c devient un simple string et non plus une array.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 17 Messages

13 déc. 2018, 21:36

Mais si la variable $c est écrasée avec le str_replace comment pourrais-je faire alors mon système de filtre vu que c'est cette fonction que j'utilise pour remplacer les mots bannis

Mammouth du PHP | 2703 Messages

13 déc. 2018, 21:38

$c['commentaire'] = str_replace($grosMots, $remplacement, $c['commentaire']); }

Eléphanteau du PHP | 17 Messages

13 déc. 2018, 23:30

J'ai fait cela et mon code fonctionne nickel ! Merci beaucoup à tous pour l'aide !