Les caractère comme é, è se transforme en des caractère é

fred-xhaflaire Messages postés 13 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 16 décembre 2019 - 28 déc. 2017 à 23:55
jordane45 Messages postés 38129 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 avril 2024 - 3 janv. 2018 à 13:52
Bonjour Tout est dans le titre Les caractère comme é, è se transforme en des caractère é sur mon script de dédicace
pourtant j'ai tout bien encoder en UTF-8 et pareil pour la base de données Voilà je vous remercie déjà de votre aide

comment fonctionne mon script pour commencer Le Visiteur envoie le message avec le formulaire suivant

voici les codes

Code du Formulaire

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
h1 {
	font-size: 5px;
	color: #333;
	text-align:center;
}
h2 {
	font-size: 2px;
	color: #69F;
	text-align:center;
}
h3 {
	font-size: 8px;
	color: #333;
}
p{
	display:inline;

}
.err
{
	color:#F00;
	font-weight: bolder;
}
.ok
{
	color:#0C3;
	font-weight: bolder;
}
.bouton{
background-color: #fff;
}

</style>
</head>


<center>
<?php
include ('configuration/config.php'); //A inserer sur chaques pages d'envoie et d'affichage des dédicaces
include ('configuration/envoi.php'); //A insérer seulement sur la page d'envoie des dédicaces
?>
<!--Formulaire d'envoie de la dédicace-->
	<form method="post" action="#">
    	<b style='color: DodgerBlue	;'><p>Pseudo</p><br /><input type="text" maxlength="9" name="pseudo_poster" <?php echo 'value="'.$pseudo_post.'"';?> /><br/><br/>
    	<p>Message</p><br /><textarea cols="20" rows="7" name="message_poster"><?php echo $message_post;?></textarea><br/><br/>
		<input class="bouton" type="submit" name="envoyer_dedi" value="Envoyer mon message" /><b style='color: DodgerBlue	;'><p>

	</form>
</center>


</body>
</html>


Code du système complet
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
// Si l'auditeur à cliquer sur envoyer
if (isset($_POST['envoyer_dedi']))
{
    $pseudo_post = mysql_real_escape_string($_POST['pseudo_poster']); //On récupère le pseudo
    $message_post = mysql_real_escape_string($_POST['message_poster']); // on récupère le message
     
    // Si l'auditeur n'a pas mis de pseudo
    if ($_POST['pseudo_poster']==null)
    {
        echo "<p class='err'>Vous n'avez pas renseigné de pseudo</p><br />";
    }
     
    // Si l'auditeur n'a pas mis de message
    else if ($_POST['message_poster']==null)
    {
        echo "<p class='err'>Vous n'avez pas renseigné de message</p><br />";
    }
      
    //Si l'auditeur à renseigner le pseudo + le message
    else if ($_POST['pseudo_poster']!=null && $_POST['message_poster']!=null)
    {
         
        // Si le pseudo est plus grand ou plus petit que les limites mis dans config.php
        if(strlen($pseudo_post) < $nombre_limiter_pseudo_mini  || strlen($pseudo_post) > $nombre_limiter_pseudo_maxi)
        {
            echo "<p class='err'>Votre pseudo doit être compris entre ".$nombre_limiter_pseudo_mini." et ".$nombre_limiter_pseudo_maxi." caractères</p><br />";
        }
         
        // Si le message est plus grand ou plus petit que les limites mis dans config.php
        else if(strlen($message_post) < $nombre_limiter_message_mini  || strlen($message_post) > $nombre_limiter_message_maxi)
        {
            echo "<p class='err'>Votre message doit être compris entre ".$nombre_limiter_message_mini." et ".$nombre_limiter_message_maxi." caractères</p><br />";
        }
         
        // Si il n'y a pas d'erreurs
        else
        {
            //On calcul de temps d'envoie entre l'ancienne dédicace (antiflood)
            $tempsrestant = time() - $_SESSION['time'];
            $tempsatt = $tempsantiflood-$tempsrestant;
             
            //Si le temps est inférieur à la limite d'antiflood du config.php
            if($_SESSION['time']!=null && $tempsrestant < $tempsantiflood)
            {
                echo "<p class='err'>Veuillez attendre ".$tempsatt." secondes <br />avant d'envoyer un nouveau message</p><br />";
            }
            //Si le temps est supérieur à la limite d'antiflood
            else
            {
                $ip = $_SERVER['REMOTE_ADDR']; // On récupère l'ip
                $date = 'le : '.date('d/m/Y').' a '.date('H:i').''; //On récupère la date
                 
                //On insère les infos dans la base MySql
                mysql_query("INSERT INTO message(pseudo, message, ip, date) VALUES('".$pseudo_post."', '".$message_post."', '".$ip."', '".$date."')")or die(mysql_error("Impossible d'envoyer les données dans la base de donnée!"));
                 
                //On met le message comme quoi la dédicace à bien été envoyé
                echo "<p class='ok'>Votre message à bien été envoyé !.</p><br />";
                 
                $_SESSION['time'] = time();//On récupère l'heure à la quel le message à été envoyé
                $pseudo_post = "";
                $message_post = "";
            }
        }
    }
}
?>


une fois que l'utilisateur envoyer le message il se trouve directement sur mon site grasse a se code

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<center>
<?php
include ('configuration/config.php'); //A inserer sur chaques pages d'envoie et d'affichage des dédicaces

?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Lire message - radio</title>
<style type="text/css">
h1 {
	font-size: 26px;
	color: #333;
	text-align:center;
}
h2 {
	font-size: 22px;
	color: #69F;
	text-align:center;
}
h3 {
	font-size: 18px;
	color: #333;
}
p{
	display:inline;
}
.titre {
	font-weight: bold;
	color: #69F;
}
.pseudo {
	font-weight: bold;
	color: #69F;
}
.dedicace {
	font-style: italic;
	margin-right: 30px;
}
.err
{
	color:#F00;
	font-weight: bolder;
}
.ok
{
	color:#0C3;
	font-weight: bolder;
}
</style>
</head>


</center>

<marquee width=1240 height=32 direction=left>
	<?php
    /*On cherche les 10 dernière dédicaces dans la base de donnée*/
    $retour_dedi = mysql_query('SELECT * FROM message ORDER BY id DESC limit 0,10')or die(mysql_error("Impossible de selectionner les données dans la tables <b>'message'</b> "));
    
    while($donnes_dedi = mysql_fetch_array($retour_dedi))//On fais une boucle
    { 
        $pseudo_dedicace = htmlspecialchars($donnes_dedi['pseudo']); //On récupère le pseudo
        $message_dedicace = htmlspecialchars($donnes_dedi['message']); // On récupère la dédicace
        echo '<p class="pseudo">'.$pseudo_dedicace.'</p> <p class="dedicace">'.$message_dedicace.'</p>'; //On affiche la dédicace
    }
    ?>
</marquee>
<br /><br /><br />


Mais comme je le dis dans mon titre Les caractère comme é, è se transforme en des caractère é

et ça fait également la même chose pour la page Administration

Code page admin

<?php
header( 'content-type: text/html; charset=utf-8' );

session_start();
if(!isset($_SESSION['pseudo'])) {
	header('Location: ../index.php');
	exit;
}

require("../../configuration/config.php");
 ?>
<!DOCTYPE html>
<html lang="fr">
  <head>
      <script type="text/javascript" src="../../js/tinymce/tinymce.min.js"></script>
	<script>
		tinymce.init({
			selector: "textarea#elm1",
			theme: "modern",
			height: 300,
			menubar : false,
			plugins: [
				 "advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker",
				 "searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking",
				 "save table contextmenu directionality emoticons template paste textcolor"
		   ],
		   toolbar: "insertfile undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | l      ink image | media fullpage | forecolor backcolor", 
		 }); 
	</script>
    <meta charset="utf-8">
    <title><?php echo $nom_site; ?> - Panel d'administration</title>
    <style type="text/css">
      body {
        padding-top: 60px;
        padding-bottom: 40px;
      }
      .sidebar-nav {
        padding: 9px 0;
      }
      @media (max-width: 980px) {
        /* Enable use of floated navbar text */
        .navbar-text.pull-right {
          float: none;
          padding-left: 5px;
          padding-right: 5px;
        }
      }
    </style>
	<link rel="stylesheet" href="../css/bootstrap.css">
	<link rel="stylesheet" href="../style.css">
  </head>
  <body>
<center><img src="../images/logo.gif"></center><br>
<center><h1><font color="#696969">Administration</font></h1></center>
<br><br>
    <div class="container-fluid">
      <div class="row-fluid">
        <div class="span3">
          <div class="well sidebar-nav">
            <ul class="nav nav-list">
<?php include('menu.php') ?>
            </ul>
          </div>
        </div>
        <div class="span9">
		<?php if($_GET["action"]=="suppr" AND !empty($_GET["id"])) {
			$req = $bdd->prepare('DELETE FROM message WHERE id="'.$_GET["id"].'"');
			$req->closeCursor();
			$req->execute();
			header("Location: ?m=1"); }
			
		if($_GET["action"]=="supprimer" AND !empty($_GET["id"])) {
		$reponse = $bdd->query('SELECT pseudo FROM message WHERE id="'.$_GET[id].'"');
		while ($donnees = $reponse->fetch()) { ?>
		<div class="alert alert-error">
			<h4>Attention !</h4>
		Vous voulez vraiment supprimer le message de "<?php echo($donnees["pseudo"]); ?>" ?<br>
			<input type="button" class="btn btn-success" onclick="document.location.href='?action=suppr&id=<?php echo $_GET['id']; ?>'" value="Oui">
		<input type="button" class="btn btn-danger" onclick="document.location.href='messages.php'" value="Non">
		</div>
		<?php } }
		if($_GET[m]=="1") {
			echo('<center><div class="alert alert-success" style="width:750px;"><center>Le Message a bien été supprimé !</center></div></center>');
		} if($_GET[m]=="2") {
			echo('<center><div class="alert alert-success" style="width:750px;"><center>Le Message a bien été modifié !</center></div></center>');
		}
		?>
          <div class="hero-unit">
			<table class="table table-bordered">
			<thead>
			<tr>
				<th style="text-align:center;">Pseudo</th>
				<th style="text-align:center;">Message</th>
				<th style="text-align:center;">Date</th>
				<th style="text-align:center;">IP</th>
				<th style="text-align:center;">Actions</th>
			</tr>
			</thead>
			<tbody>
			<?php
			$reponse = $bdd->query('SELECT * FROM message ORDER by id desc');
			while ($donnees = $reponse->fetch())
			{
			?>
			<tr>
			<td width="35%"><?php echo $donnees["pseudo"]; ?></td>
			<td width="35%"><?php echo $donnees["message"]; ?></td>
			<td width="35%"><?php echo $donnees["date"]; ?></td>
			<td width="35%"><?php echo $donnees["ip"]; ?></td>
			<td width="26%"><center> <input type="button" class="btn btn-danger" onclick="document.location.href='?action=supprimer&id=<?php echo $donnees['id']; ?>'" value="Supprimer"></center></td>
			</tr>
			<?php
			}
			$reponse->closeCursor();
			?></tbody>
			</table>
          </div>
        </div>
      </div>

    </div>
  </body>
</html>

4 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
29 déc. 2017 à 00:58
Bonjour,

Tu déclares dans ton code que le fichier utilise un charset=utf-8, mais est-ce que le fichier est bien enregistré avec cet encodage ?

Exemple, avec le Bloc-notes Windows :
0
fred-xhaflaire Messages postés 13 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 16 décembre 2019
29 déc. 2017 à 17:41
Bonjour je vien de vérifier oui tous e enregistré en UTF-8
0
jordane45 Messages postés 38129 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 avril 2024 344 > fred-xhaflaire Messages postés 13 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 16 décembre 2019
29 déc. 2017 à 20:29
As tu vérifier tout y compris la bdd ? (comme indiqué dans ma réponse précédente.. : http://codes-sources.commentcamarche.net/forum/affich-10081990-les-caractere-comme-e-e-se-transforme-en-des-caractere-a-c#2 )
0
fred-xhaflaire Messages postés 13 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 16 décembre 2019 > jordane45 Messages postés 38129 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 avril 2024
29 déc. 2017 à 23:23
Oui tous et vérifier mes les text arrive déjà déformé sur ma BDD
et pour mysqli mon hébergeur ne les prent pas en charge
0
jordane45 Messages postés 38129 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 avril 2024 344
29 déc. 2017 à 07:59
0
jordane45 Messages postés 38129 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 avril 2024 344
29 déc. 2017 à 20:30
De plus...
- Attention, l'extension mysql était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0.
http://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

À la place, tu peux (<gras DOIS </gras> ) utiliser l'extension MySQLi ou l'extension PDO_MySQL
http://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli

Si tu choisis PDO, pense à activer la gestion des erreurs : http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs .

Et quelque soit la méthode choisie.. il faut aussi déclarer l'encodage dans la connexion à la bdd.

0
fred-xhaflaire Messages postés 13 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 16 décembre 2019
Modifié le 29 déc. 2017 à 23:18
Oui tous et vérifier mes les text arrive déjà déformé sur ma BDD
et pour mysqli mon hébergeur ne les prent pas en charge
0
jordane45 Messages postés 38129 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 avril 2024 344
29 déc. 2017 à 23:28
Ton hébergeur ne prend pas le mysqli ?? Le pdo ok..mais le mysqli ????? c'est franchement étonnant.... il date de quand ton hébergeur ? Oo

Donc on est bien d'accord que :
- La BDD en en UTF8 (la collation) et les tables également (un show create de tes tables serait le bienvenu )
- TOUS tes fichiers html/php sont encodés utf8 (vérifié via ton éditeur) (tu pourrais nous montrer un petit imprime écran ?)
- Le charset est déclaré dans les en-têtes de tes fichiers (ça oui on peut le voir dans ton code)


Et pour finir... . as tu défini le charset dans la connexion à la bdd ?
http://php.net/manual/fr/function.mysql-set-charset.php
0
fred-xhaflaire Messages postés 13 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 16 décembre 2019 > jordane45 Messages postés 38129 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 avril 2024
Modifié le 1 janv. 2018 à 13:55
Bonjour tous d’abord Bonne et heureuse année 2018

Alors voici un Screenshots de ma table https://img15.hostingpics.net/pics/372624Capture.png

A savoir mon hébergeur et https://onetsolutions.net/
est-ce que phpMyAdmin et compatible mysqli ou ili une autre bdd qui va avec mysqli car sincèrement je suis bloqué apparemment mon hébergeur ne prendrai pas en charge
0
jordane45 Messages postés 38129 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 avril 2024 344 > fred-xhaflaire Messages postés 13 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 16 décembre 2019
Modifié le 1 janv. 2018 à 17:59
phpmyadmin est un logiciel qui permet de manipuler une base de données MYSQL.
Mysqli, PDO sont des EXTENSIONS qui permettent à un langage (comme le php) d'accéder à une BDD (mysql ici )
Et... où as tu vu que ton hébergeur n'était pas compatible mysqli ou pdo ???
Je pense que tu n'as même pas essayé...
0
fred-xhaflaire Messages postés 13 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 16 décembre 2019 > jordane45 Messages postés 38129 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 avril 2024
1 janv. 2018 à 18:31
Juste que ces pas écrit sur mon Panel Screen ici https://img15.hostingpics.net/pics/76014030f.png

Pour les caractère maintenant ilia un soucis jet re fait les réglage pour être sur en utf8 tous se passe bien sauf sur mon panel maintenant
https://img15.hostingpics.net/pics/229281Capturess.png
0
jordane45 Messages postés 38129 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 avril 2024 344 > fred-xhaflaire Messages postés 13 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 16 décembre 2019
1 janv. 2018 à 20:48

Juste que ces pas écrit sur mon Panel

( au passage : <ital><juste que CE N'EST PAS .../ital> sera mieux )
Qu'est-ce qui n'est pas écrit ?? le mysqli ??? .... as tu lu ce que je t'ai écrit ???
As tu été voir les liens que je t'ai donné ????
http://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

Pour te refaire un résumé ...
Pour manipuler ta bdd depuis tes pages php tu utilises des instructions mysql_*
mysql_query
mysql_fetch_array
mysql_real_escape_string

Ces instructions se basent sur l'extension mysql ( ne pas confondre avec la base de données mysql )
C'est OBSOLÈTE !
A la place il faut utiliser l'extension mysqli ou PDO
(en gros.. faut changer les instructions dans ton code en utilisant l'une de ces extensions en lieu et place de ton code actuel).



sauf sur mon panel

Et il est codé comment ce panel ? Le fichier est en utf8 ?
Quel est l'encodage (le charset) déclaré dans l'entête de cette page ? utf8 ??
Et sinon... il y a quoi comme code dedans ?
0
Rejoignez-nous