Page 1 sur 1

Remplacement de caractères dans un formulaire

Posté : 18 mai 2006, 16:32
par legniarf
Je n'arrive pas à convertir les caractères d'une chaîne de caractères récupérée dans un formulaire.

Voici le code de demande.htm :
<html><body>
<form method="post" action="reponse_chainedecaractere.php">
Mot : <input type="text" name="mot" size="12">
<input type="submit" value="OK">
</form></body></html>
Voici maintenant le code de reponse_chainedecaractere.php :
<html>
<head>
</head>
<body>
<?php
$mot = $_POST ['mot'];
$mot = strtr ($mot, "ï", "i");
echo "<center>Le mot est $mot.</center>"
?> 
</body>
</html>
Et là, si je saisis le mot maïs dans mon formulaire, ça m'affiche :
Le mot est maïs.
Par contre quand reponse_chainedecaractere.php est :
<html>
<head>
</head>
<body>
<?php
$mot = "maïs";
$mot = strtr ($mot, "ï", "i");
echo "<center>Le mot est $mot.</center>"
?> 
</body>
</html>
Ça m'affiche bien :
Le mot est mais.
J'aimerais donc savoir ce que je dois faire pour convertir la chaîne de caractères de mon formulaire.

Posté : 18 mai 2006, 16:54
par charabia
ça veut dire que ton $_POST est mal récupéré.
$mot = $_POST['mot'];
est mieux que
$mot = $_POST ['mot'];

Posté : 18 mai 2006, 16:57
par legniarf
J'ai fait comme tu dis, mais ça ne marche pas mieux.

Posté : 18 mai 2006, 16:59
par charabia
Qu'as-tu comme résultat si tu fais :
echo $_POST['mot'];
Edit, j'ai testé, tout fonctionne chez moi.

Posté : 18 mai 2006, 17:25
par legniarf
Ben moi ça fait toujour pareil et 'aimerai bien savoir pourquoi.

Posté : 18 mai 2006, 18:35
par charabia
Tu dois avoir un problème de config dans ce cas. Ce n'est pas ton code php qui est en cause apparemment.

Posté : 18 mai 2006, 19:10
par legniarf
J'avais fait les précédents essais sur mon Macintosh en local. Maintenant 'ai mis les deux fichiers sur mon espace web chez Free, ça ne marche pas non plus. Le php de Free serait-il également mal configuré ?

L'adresse est la suivante : http://vincent.domino.pao.free.fr/demande_simple.htm

J'y ai mis les deux fichiers "demande_simple.htm" et "reponse_chainedecaractere.php" dont voici les contenus :

demande_simple.htm
<html><body>
<form method="post" action="reponse_chainedecaractere.php">
Mot : <input type="text" name="mot" size="12">
<input type="submit" value="OK">
</form></body></html>
reponse_chainedecaractere.php
<html>
<head>
</head>
<body>
<?php
$mot = $_POST['mot'];
$mot = strtr ($mot, "ï", "i");
echo $_POST['mot'];
?> 
</body>
</html>

Posté : 18 mai 2006, 19:32
par Shrell
est-ce que ton fichier reponse_chainedecaractere.php est écrit dans le même charset que ton HTML généré?
[EDIT]
D'ailleurs ton HTML n'a pas de charset, essaie d'en rajouter un pour voir...

Posté : 18 mai 2006, 19:33
par legniarf
En fait, en relisant les messages, je m'aperçois qu'il ne faut pas mettre
echo $_POST['mot'];
à la fin, mais
echo "$mot";
Je l'ai donc corrigé le fichier de réponse à l'adresse http://vincent.domino.pao.free.fr/demande_simple.htm
J'ai donc mis pour le fichier "reponse_chainedecaractere.php" :
<html>
<head>
</head>
<body>
<?php
$mot = $_POST['mot'];
$mot = strtr($mot, "ï", "i");
echo "$mot";
?> 
</body>
</html>
Mais de toute façon, ça ne marche pas plus. Comment ça se fait ?

Posté : 18 mai 2006, 19:36
par legniarf
Nos messages se sont croisés, c'est pour ça que je n'ai pas répondu à ce que tu viens de me dire.

Je ne connaissais pas le charset. Je vais en insérer pour voir ce que ça donne et je te tiens au courant.

Merci.

Posté : 18 mai 2006, 20:10
par legniarf
J'ai mis une balise

Code : Tout sélectionner

<meta http-equiv="Content-Type" content="text/html" charset="ISO-8859-15">
dans les deux documents. Je ne sais pas si c'est ça qu'il faut faire, ça ne marche pas. J'ai mis également :

Code : Tout sélectionner

<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
et ça ne marche pas non plus.

Posté : 18 mai 2006, 20:36
par Shrell
regarde dans ton éditeur de code quel est l'encodage utilisé, et ensuite tu mets le même charset pour ta page. Si ça vient pas de là, je vois po :?

Posté : 18 mai 2006, 21:01
par legniarf
OK, je vais regarder ce que j'ai dans BBEdit. Et c'est bien comme ça qu'il faut faire, mettre dans les <head> de mes deux fichiers le code ci-dessous ?
<meta http-equiv="Content-Type" content="text/html" charset="ISO-8859-15">

Posté : 18 mai 2006, 22:12
par Shrell
Dans ton head :

Code : Tout sélectionner

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
en remplacant ISO-8859-1 par le charset qui va bien ;)

Posté : 19 mai 2006, 10:19
par legniarf
Super ! C'était bien le charset ! Comme je suis sur Mac, mon traitement de texte était en charset Mac-roman. J'ai enregistré les fichiers en charset ISO-8859-1 et j'ai rajouté le méta que tu m'as donné dans le <head> de mes fichiers et là ça marche !
Merci :D