[AJAX] Gestion des caractères spéciaux
Bonjour,
j'ai quelques soucis avec les caractères spéciaux dans un de mes scripts AJAX!. Je sais que la question a été posée de nombreuses fois mais toutes les solutions que j'ai trouvées n'ont pas fonctionné chez moi!
Voila l'exemple qui fait planté mon script :
J'ai un de nom de société qui est Test'&é
Après moult expérimentations, j'ai trouvé une solution horrible qui consiste a encodé en UTF8 puis à utiliser la fonction htmlspecialchars (la fonction htmlentites ne donne pas de bons résulats)... C'est assez moche.
Connaissez vous une solution plus stylé pour résoudre ce problème?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
if ( isset($_POST) && !empty($_POST) && isset($_POST['adh_id']) && $_POST['adh_id'] != "" )
{
require_once "include/class/member.class.php";
require_once "include/class/company.class.php";
$itp_memb = new member();
$itp_memb->initMemberFromDB($_POST['adh_id']);
$itp_soc = new company();
$itp_soc->initCompanyFromDB($itp_memb->getSocID());
$xml = '<?xml version="1.0"?>';
$xml .= '<company>';
$xml .= '<member>' . $itp_memb->getMail() . '</member>';
$xml .= '<id>' . $itp_soc->getID() . '</id>';
$xml .= '<name>' . htmlspecialchars(utf8_encode($itp_soc->getName()), ENT_QUOTES) . '</name>';
$xml .= '<type>' . htmlspecialchars(utf8_encode(constant($itp_soc->getSocTypeName())), ENT_QUOTES) . '</type>';
$xml .= '<adress>' . htmlspecialchars(utf8_encode($itp_soc->getAdress()), ENT_QUOTES) . '</adress>';
$xml .= '<adressplus>' . htmlspecialchars(utf8_encode($itp_soc->getAdressPlus()), ENT_QUOTES) . '</adressplus>';
$xml .= '<city>' . htmlspecialchars(utf8_encode($itp_soc->getCity()), ENT_QUOTES) . '</city>';
$xml .= '<zip>' . $itp_soc->getZip() . '</zip>';
$xml .= '<country>'. $itp_soc->getCountryID() . '</country>';
$xml .= '</company>';
header('Content-Type: text/xml');
echo $xml;
} |
Enfin, j'aimerais savoir s'il est judicieux de transformer les données provenant d'un formulaire en utilisant la fonction htmlentities avant de les stocker dans une base de données?
Merci
PS : j'ai testé la solution des headers, de la fonction mb_convert_encoding, ...