Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Formulaire et accents

3 réponses
Avatar
jpwitz
Bonjour
Dans mes pages html, créées avec php, les formulaires ne transmettent
pas les caractères accentuées:

Voici mon code html:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="GENERATOR" content="">
</head>

<body>
<form method="POST" action="misajour.php" name="form1"">
<p align="right">Nom :<input type="text" size="40" name="Nom" value=""></p>
</form>
</body>

Lorsque, dans le script misajour.php j'active la fonction phpinfo(),
j'ai, entr'autes, les éléments suivants:
1)si je saisis éléonore dans le formulaire, phpinfo rnvoie [Nom] =>
lonore (les caractères accentués ont disparus!)
2)le paramètre _SERVER["HTTP_ACCEPT_CHARSET"] indique
ISO-8859-1,utf-8;q=0.7,*;q=0.7 (donc bien utf-8)

Quelqu'un aurait une piste de solution à mon problème?

Merci

jp Witz

3 réponses

Avatar
Olivier Miakinen
Bonjour,

Le 17/05/2011 15:51, jpwitz a écrit :

Dans mes pages html, créées avec php, les formulaires ne transmettent
pas les caractères accentuées:

Voici mon code html:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">



Quel est le Content-Type transmis dans les vrais entêtes HTTP, plutôt
que dans ce succédané qu'est le http-equiv ? Pour le forcer :

<?php
header("Content-Type: text/html; charset=utf-8");
?>

(à faire au *tout* début, comme tout entête HTTP)

<meta name="GENERATOR" content="">
</head>

<body>
<form method="POST" action="misajour.php" name="form1"">
<p align="right">Nom :<input type="text" size="40" name="Nom" value=""></p>
</form>
</body>

Lorsque, dans le script misajour.php j'active la fonction phpinfo(),
j'ai, entr'autes, les éléments suivants:
1)si je saisis éléonore dans le formulaire, phpinfo rnvoie [Nom] =>
lonore (les caractères accentués ont disparu!)



Plutôt que phpinfo(), essaye d'afficher bin2hex($_REQUEST['Nom'])

2)le paramètre _SERVER["HTTP_ACCEPT_CHARSET"] indique
ISO-8859-1,utf-8;q=0.7,*;q=0.7 (donc bien utf-8)



Essaye de virer ISO-8859-1 si tout est en UTF-8.

P.-S. : Si ton adresse ne devient correcte qu'en retirant « -aenlever »
(ou même si elle reste incorrecte dans ce cas), merci de signaler que
cette adresse est invalide en la suffixant par « .invalid » :



Cordialement,
--
Olivier Miakinen
Avatar
jpwitz
Ça marche avec la fonction

<?php
header("Content-Type: text/html; charset=utf-8");
?>

Encore merci de votre aide
Avatar
Tr
*Ecrit* *par* *jpwitz*:
Ça marche avec la fonction

<?php
header("Content-Type: text/html; charset=utf-8");
?>

Encore merci de votre aide



ayant accès au .htaccess d'un site, j'y ai mis ceci:
AddDefaultCharset UTF-8
(c'est chez ovh en mutu, peut-être autre syntaxe ailleurs)
et je n'ai aucun problème de charset avec ça...
peut-être à essayer.

--
Ne pars jamais vaincu. (Etat d'esprit)