Problème d'encodage de données de formulaire

Résolu
a.finot Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   -  
 enox -
Bonjour,
J'ai un formulaire d'inscription qui envoie des données dans une base mysql mais les données sont enregistrées en html, donc sans les accents... ma base est codée en utf8.
Je voudrais utiliser la fonction html_entity_decode mais je ne sais pas où la placer. Ca fait des heures que je cherche et après des tas d'essais je ne trouve pas ;-(
Si quelqu'un a la soluce, je suis preneuse !
Merci d'avance.

Voici le code :
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "contacts")) {
$insertSQL = sprintf("INSERT INTO clients (ID, nom, prenom, email, tel, adresse, cp, ville, pays, `index`, niveau) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['ID'], "int"),
GetSQLValueString($_POST['nom'], "text"),
GetSQLValueString($_POST['prenom'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['tel'], "text"),
GetSQLValueString($_POST['adresse'], "text"),
GetSQLValueString($_POST['cp'], "text"),
GetSQLValueString($_POST['ville'], "text"),
GetSQLValueString($_POST['pays'], "text"),
GetSQLValueString($_POST['index'], "text"),
GetSQLValueString($_POST['niveau'], "text"));

mysql_select_db($database_lcdvs, $lcdvs);
$Result1 = mysql_query($insertSQL, $lcdvs) or die(mysql_error());

$insertGoTo = "home.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>
<div id="formulairecontact">
<form action="<?php echo $editFormAction; ?>" name="contacts" id="contacts" method="POST""http://www.lesclefsdevotreswing.com/envoimail.php">
<table width="610" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="311" height="27">Nom :
<input name="nom" type="text" id="nom" size="35" /></td>
<td width="299">Prénom :
<input name="prenom" type="text" id="prenom" size="35" /></td>
</tr>
<tr>
<td><p>Adresse :
<input name="adresse" type="text" id="adresse" size="35" />
</p> </td>
<td>Pays :
<input name="pays" type="text" id="pays" size="35" /></td>
</tr>
<tr>
<td>Code postal :
<input name="cp" type="text" id="cp" size="35" /></td>
<td>Ville :
<input name="ville" type="text" id="ville" size="35" /></td>
</tr>
<tr>
<td>Email :
<input name="email" type="text" id="email" size="35" /></td>
<td>Mobile :
<input name="tel" type="text" id="tel" size="35" /></td>
</tr>
<tr>
<td>Index :
<input name="index" type="text" id="index" size="35" /></td>
<td>Si vous n'êtes pas classé, merci de nous indiquer votre niveau :
<select name="niveau" id="niveau">
<option value="Classé">Classé</option>
<option value="Non initié">Non initié</option>
<option value="Débutant">Débutant</option>
<option value="Carte verte">Carte verte</option>
<option value="Moyen">Moyen</option>
</select></td>
</tr>
<tr>
<td><input type="hidden" name="ID" id="ID" /></td>
<td><input type="submit" name="envoyer" id="envoyer" value="Validez votre inscription" /></td>
</tr>
</table>

<input type="hidden" name="MM_insert" value="contacts" />
</form>
</div>
A voir également:

8 réponses

a.finot Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   2
 
Bjr,

Est-ce que ce matin quelqu'un aurait une réponse à m'apporter ?
0
enox
 
Il y a un truc que je comprends pas, tu utilises htmlentities donc normalement tes données sont enregistrées en html et quand tu récupères le contenu de tes bases et que tu les affiches, il n'y a pas à décoder les codes html, c'est le rôle du navigateur ça.
0
a.finot Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   2
 
Bjr,
Merci pour ta réponse !
En fait mon problème c'est que je ne veux pas que mes données soient enregitrées en html dans ma base.
Quand j'ai copié mon code je n'ai pas fait gaffe qu'il y avait la fonction htmlentites au lieu de html_entity_decode (ça devait être l'un de mes nombreux tests ;-)). J'ai fait des tas d'essais, notamment sans fonction, avec htmlentities et html_entity_decode à cet endroit et ça ne change rien... je n'ai plus d'idées...
0
enox
 
Et pourquoi tu veux pas que ce soit en html ? C'est pourtant le plus simple, ça évite les caractères bizarres que tu peux trouvé avec utf8
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
a.finot Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   2
 
J'ai besoin d'exporter les données de cette table dans excel, alors les zigouigouis à la place des accents... ça le fait pas.
As-tu une solution ?
0
enox
 
Le problème c'est que si tu envois tes accents cash dans ta base à mon avis tu va te retrouver avec des choses bizarres...
Faut saisir les caractères spéciaux en utf8 également sinon je vois pas.
0
a.finot Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   2
 
Il n'y a pas un autre codage plus adapté ?
0
enox
 
Bah si ta base est configuré en utf8, si tu veux pas de merdes avec les accents, il faut une saisie en utf8. Enfin chez moi ça marche comme ça ;)
0