Aller au contenu
View in the app

A better way to browse. Learn more.

Next

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Problème avec les accents

Featured Replies

Posté(e)

Bonjour,

J'ai un problème qui m'énerve. J'ai créer une page qui insère des données dans une table.

<?php
/*
---------------------------------------------------------
Module : Module principale
Auteur : Limp
---------------------------------------------------------
*/
/*
-------------------------
On appelle les librairies
-------------------------
*/
include('lib/connection.lib.php');

if ($_POST['boutonok'] == "OK")
{
$nom = htmlspecialchars(htmlentities($_POST['mesnompre'], ENT_QUOTES));
$profession = htmlspecialchars(htmlentities($_POST['mesprofession'], ENT_QUOTES));
$mail = htmlspecialchars(htmlentities($_POST['mesemail'], ENT_QUOTES));
$tel = htmlspecialchars(htmlentities($_POST['mestel'], ENT_QUOTES));
$titre = htmlspecialchars(htmlentities($_POST['mestitre'], ENT_QUOTES));
$message = htmlspecialchars(htmlentities($_POST['mesmessage'], ENT_QUOTES));
$ip = $REMOTE_ADDR;
$navigateur = $HTTP_USER_AGENT;
$ref = $HTTP_REFERER;
$destinataire='t*çç&%%&ç%';
$titres="Nouvelle question dans la base de donnée";
$messages="Vous avez un nouveau message dans la base de donnée!";
$sql = "INSERT INTO `message_site` (`mesnum`, `mesnompre`, `mesprofession`, `mesemail`, `mestel`, `mestitre`, `mesmessage`, `mesip`, `mesnav`, `mesref`) VALUES ('','$nom','$profession','$mail','$tel','$titre','$message','$ip','$navigateur','$ref')";
mysql_query($sql) or die('erreur d\'insertion');
echo "<div align='center'>";
echo "<font face='verdana' size='3'>Le message a bien été envoyé!</font>";
echo "</div>";
mail($destinataire,$titres,$messages,"From: Hellokeys");
mysql_close();
}
else
{
?>
<form method="post" action="?contact">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="25%"><label for="nom">Nom:</label></td>
<td width="75%"><input id="nom" name="mesnompre" type="text" size="50" /></td>
</tr>
<tr>
<td width="25%"><label for="profession">Profession:</label></td>
<td width="75%"><input id="profession" name="mesprofession" type="text" size="30" /></td>
</tr>
<tr>
<td width="25%"><label for="mail">E-mail:</label></td>
<td width="75%"><input id="mail" name="mesemail" type="text" size="50" /></td>
</tr>
<tr>
<td width="25%"><label for="tel">Téléphone:</label></td>
<td width="75%"><input id="tel" name="mestel" type="text" size="15" /></td>
</tr>
<tr>
<td width="25%"><label for="titre">Titre:</label></td>
<td width="75%"><input id="titre" name="mestitre" type="text" size="15" /></td>
</tr>
<tr>
<td width="25%"><p align="right"><label for="message">Message:</label></td>
<td width="75%"><textarea name="mesmessage" alt="message" rows="10" cols="30"><?php echo trim(htmlentities($Message)) ?></textarea></td>
</tr>
</table>
<input type="submit" name="boutonok" value="OK"> 
<input type="reset" name="vider">
</form>
<?
}
?>

Tout ce code fonctionne. Les infos sont stockés dans ma base. En revanche si une personne mets un accents dans son message ça ressemblera à ça:

Je suis &Atilde;&nbsp; gen&Atilde;&amp

Et lorsque je demande à mon code d'afficher le contenu de la table:

Je suis à genève!?

Voici le code qui s'occupe de l'affichage:

<?
/*
---------------------------------------------------------
Module : Module message base de donnée
Auteur : Limp
---------------------------------------------------------
*/
/*
-------------------------
On appelle les librairies
-------------------------
*/
include('lib/connection.lib.php');

$sql = "SELECT * FROM `message_site`";
$sql_results = mysql_query($sql) or die(mysql_error());
While($messdata = mysql_fetch_assoc($sql_results))
{
?> 
<div id="tableau1">
Numéro:<? echo(html_entity_decode($messdata['mesnum'], ENT_QUOTES)); ?><br />
Nom : <? echo(html_entity_decode($messdata['mesnompre'], ENT_QUOTES)); ?><br />
Profession:<? echo(html_entity_decode($messdata['mesprofession'], ENT_QUOTES)); ?><br />
E-mail :<? echo(html_entity_decode($messdata['mesemail'], ENT_QUOTES)); ?><br />
Téléphone :<? echo(html_entity_decode($messdata['mestel'], ENT_QUOTES)); ?><br />
Titre :<? echo(html_entity_decode($messdata['mestitre'], ENT_QUOTES)); ?><br />
Message :<? echo(html_entity_decode($messdata['mesmessage'], ENT_QUOTES)); ?><br />
Ip :<? echo(html_entity_decode($messdata['mesip'], ENT_QUOTES)); ?><br />
Navigateur :<? echo(html_entity_decode($messdata['mesnav'], ENT_QUOTES)); ?><br />
Referer :<? echo(html_entity_decode($messdata['mesref'], ENT_QUOTES)); ?><br />
</div><br />
<?
}
mysql_close();
?>

Est-ce que quelqu'un saurait comment faire???

Merci!

Modifié par Limp

Posté(e)

Normalement tu n'as pas besoin de decoder ces entités (html_entities_decode) car en les insérant dans une page les navigateurs l'affichent correctement.

Le bug, a mon avis, vient du fait que ton PHP n'est pas configuré pour le meme codage de caracteres que le codage défini dans ta page. Donc la solution c'est soit d'enlever ces html_entities_decode, soit de donner une option a PHP pour qu'il fasse de l'unicode (UTF-8 ) ou du ISO-8859-1 (ou -15 pour avoir le caractèrere €).

Modifié par k-o-x

Posté(e)
  • Auteur

J'ai enlevé le HTML_ENTITY mais c'est toujours pas ça...

M'énerve!

Ce que je capte pas c'est que ça fonctionnne très bien avec un autre site...

Posté(e)
  • Auteur

J'ai réussi!!!

Message :<? echo(html_entity_decode(utf8_decode($messdata['mesmessage']), ENT_QUOTES)); ?><br />

Ouf!

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.