Problème insertion de commentaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème insertion de commentaire

Re: Problème insertion de commentaire

par xTG » 01 avr. 2012, 21:13

Oui, l'encodage doit être le même dans tous les canaux de l'application.
On a un sujet traitant du problème qui est bien expliqué : faq-tutoriels/encodage-utf-t245062.html

Re: Problème insertion de commentaire

par Selinaa » 01 avr. 2012, 19:05

En effet, c'était bien le problème que tu disais. :D
Maintenant, j'ai un autre petit souci.. les commentaires sont bien affichés seulement les caractères spéciaux tel que les accents ne sont pas prit en compte. Il met n'importe quoi.. :(
Dans ma BDD, je code en UTF8_bin et j'ai mis un bout de code comme ceci dans la page où il y a mon formulaire : mysql_query("SET NAMES UTF8"); car si je l'a met pas, l'article a aussi des problèmes de caractères. :?
Sinon, cela ne fonctionne pas du tout.. Auriez-vous une idée du problème ? :roll:

Merci en tout cas pour l'aide !!! :D :D

Re: Problème insertion de commentaire

par Selinaa » 01 avr. 2012, 17:56

AAAAAHHH !!! Tout s'explique donc !

Je te remercie pour ta réponse, je vais voir si c'est bien ça le problème ! :D :D

Re: Problème insertion de commentaire

par xTG » 01 avr. 2012, 17:35

Il ne faut jamais de HTML ou d'envoi au navigateur avant un header(), c'est comme pour le session_start().
Tu ne dois pas avoir un niveau d'erreur PHP de configuré et donc tu ne vois pas le message. ;)

Problème insertion de commentaire

par Selinaa » 01 avr. 2012, 16:44

Bonjour à tous,

Je me suis inscrite sur votre forum car cela fait un petit moment que j'ai un problème sur un de mes codes, et je dois avouer que je n'ai plus les idées claires à son sujet.
La solution doit être devant mes yeux, mais je ne l'a trouve pas ! :?

Je vous explique : j'ai possibilité d'ajouter des commentaires à une news précise. J'ai fait un formulaire pour pouvoir ajouter ces commentaires, seulement il y a un problème. Dès que nous validons le formulaire, ma page de traitement se "bloque" et reste vide comme si il ne passait pas certain if et donc ne redirige pas à la fin. J'ai fait des echos dans mes boucles pour vérifier si toutes passaient, chaque fois c'était bon. Mais il ne va pas jusqu'au header();
Ma requête sql qui sert à ajouter le commentaire dans ma table fonctionne, puisque les informations sont bien recueillis. Et si on retourne sur la page avec le "retour" du navigateur, le commentaire s'affiche bien. :shock:

Voici mon formulaire :
<form action="traitement_commentaire.php" method="post">
        <input name="id" type="hidden" value="<?php echo $ID; ?>" />
        <input name="heure" type="hidden" value="<?php echo "$heure h $minute min"; ?>" />
        <input name="date" type="hidden" value="<?php echo $date; ?>" />
        <strong><p style="padding-left:40px; margin-top:30px;">Pseudo *</p></strong>
        <input name="pseudo" type="text" style="margin-left:40px; height:20px;"  size="29"/>
        <strong><p style="padding-left:40px; margin-top:15px; ">E-mail *</p></strong>
        <input name="mail" type="text" style="margin-left:40px; height:20px;"  size="29"/>
        <strong><p style="padding-left:40px; margin-top:15px; ">Votre commentaire</p></strong>
        <textarea name="commentaire" cols="35" rows="10" style="margin-left:40px;"></textarea><br />
        <input name="valider" type="submit" value="Ajouter le commentaire" style="padding-right:40px; margin-left:50px; margin-top:10px; margin-bottom:20px;" />
</form>

et voici le trairement_commentaire.php
<?php include ('includes/entete.php'); ?>
   <div id="colonne_gauche">
       <div id="titre_article"><h1>Problème commentaire</h1></div>
       <div id="fond_article">
       <div id="texte_avancement" style="margin-left:50px; padding-top:20px; padding-bottom:20px;">
       <?php

	include 'includes/config.php';
	  
	  if (isset($_POST["id"])){
				
				$id=$_POST["id"];
				
			}
	  
	 $regex = "/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i";
     if (preg_match($regex,$_POST['mail']))
     { 
	 		$email = TRUE;
			$mail=$_POST['mail'];
			
																    
			if (isset($_POST["pseudo"]))  
			{
				if($_POST["pseudo"] != "")
				{
					$pseudo=$_POST["pseudo"];
					
					
					if (isset($_POST["heure"])){
				
						$heure=$_POST["heure"];
						
					}
					
					if (isset($_POST["date"])){
						
						$date=$_POST["date"];
						
					}
				
					if (isset($_POST["commentaire"])){
						
						$commentaire=$_POST["commentaire"];
						
					}
					
					mysql_connect($host, $user, $pass) or die("Impossible de se connecter : " . mysql_error());
					
					//Sélection de la base de donnée
				 
					mysql_select_db($db) or die("Select `$db` impossible : " . mysql_error());
					
					$sql="INSERT INTO kaishii_commentaire(kaishii_NoAutoArticle, AuteurCom, MailCom, TexteCom, HeureCom, DateCom) VALUES ('$id','$pseudo', '$mail', '$commentaire', '$heure', '$date')";
				
					//Lancement d'une ou de plusieurs requêtes
				 
					$result = mysql_query($sql) or die("Échec de la requête : " . mysql_error());
					
					
					header("Location:article.php?id=".$id);
				}
				else
				{
					echo '<p>Veuillez entrer un pseudo valide.</p>';
					echo '<a href="article.php?id='.$id.'" style="color:#000; text-decoration:none; font-weight:bold;">Retour aux commentaires </a>';
					
				}
			}	
		}
		 else
		 { 
			$email = FALSE;
			$form=true;
			echo '<p>Veuillez entrer une adresse e-mail valide.</p>';
			echo '<a href="article.php?id='.$id.'" style="color:#000; text-decoration:none; font-weight:bold;">Retour aux commentaires </a>';
		 } 
	

?>
		</div>
       </div>
       <div id="ligne_commentaire">   </div>
       
       
   </div>

   <div id="colonne_droite" align="right">
        <?php include ('includes/avancement.html'); ?>
        <?php include ('includes/partenaire.html'); ?>
   </div>  
   
   
 <?php include ('includes/footer.php'); ?> 
Je vous remercie pour votre aide, et au plaisir ! :)