Remplacement de caractères dans un formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Remplacement de caractères dans un formulaire

par legniarf » 19 mai 2006, 10:19

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

par Shrell » 18 mai 2006, 22:12

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 ;)

par legniarf » 18 mai 2006, 21:01

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">

par Shrell » 18 mai 2006, 20:36

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 :?

par legniarf » 18 mai 2006, 20:10

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.

par legniarf » 18 mai 2006, 19:36

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.

par legniarf » 18 mai 2006, 19:33

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 ?

par Shrell » 18 mai 2006, 19:32

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...

par legniarf » 18 mai 2006, 19:10

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>

par charabia » 18 mai 2006, 18:35

Tu dois avoir un problème de config dans ce cas. Ce n'est pas ton code php qui est en cause apparemment.

par legniarf » 18 mai 2006, 17:25

Ben moi ça fait toujour pareil et 'aimerai bien savoir pourquoi.

par charabia » 18 mai 2006, 16:59

Qu'as-tu comme résultat si tu fais :
echo $_POST['mot'];
Edit, j'ai testé, tout fonctionne chez moi.

par legniarf » 18 mai 2006, 16:57

J'ai fait comme tu dis, mais ça ne marche pas mieux.

par charabia » 18 mai 2006, 16:54

ça veut dire que ton $_POST est mal récupéré.
$mot = $_POST['mot'];
est mieux que
$mot = $_POST ['mot'];

Remplacement de caractères dans un formulaire

par legniarf » 18 mai 2006, 16:32

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.