[RESOLU] Remplir automatiquement zone input text

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 : [RESOLU] Remplir automatiquement zone input text

Re: Remplir automatiquement zone input text

par Herve_be » 21 mars 2014, 15:09

J'ai remplacé

Code : Tout sélectionner

$texte = $_POST['Comment']; par $texte = htmlspecialchars($_POST['Comment'], ENT_QUOTES );
et ça semble fonctionner, merci.

Re: Remplir automatiquement zone input text

par sirakawa » 21 mars 2014, 14:41

l'apostrophe == galère.
Idée à adapter :
<?PHP
$texte = isset($_POST['texte']) ? htmlspecialchars($_POST['texte'], ENT_QUOTES ): "";
print "$texte";
print
"<form method = 'post' action = 'index.php' >
<input type = 'text' name = 'texte' value = '$texte' >

<button type = 'submit'>OK</button>
</form>";

?>

Re: Remplir automatiquement zone input text

par Herve_be » 21 mars 2014, 13:08

Bonjour,
Petit problème : si le texte contient un quote (') il est tronqué.

Code : Tout sélectionner

if (isset($_POST['bouton'])) { $texte = $_POST['Comment']; $texte=$texte.$_POST['bouton']; /* J'ajoute au texte saisi le texte prédéfini correspondant au bouton */ } echo "<input type='text' size='100' name='Comment' value ='$texte'>"; echo "<input type='submit' value='Confirmer'>";
Quand on clique sur "Confirmer" on revient bien dans le même module .php avec le contenu de $texte
sauf si par exemple le texte saisi est "aujourd'hui" le texte revient avec la valeur "aujourd".
J'ai essayé d'ajouter

Code : Tout sélectionner

$texte = mysql_real_escape_string($texte); /*Protect from special characters */
mais alors il revient avec "aujourd\"
Une idée pour résoudre ce petit problème ?
Merci

Re: Remplir automatiquement zone input text

par Herve_be » 10 mars 2014, 18:02

Grand merci pour ton aide et ta patience : ça fonctionne !
J'ai finalement fait

Code : Tout sélectionner

if (isset($_POST['bouton'])) $texte = $_POST['Comment']. ...;

Re: Remplir automatiquement zone input text

par sirakawa » 10 mars 2014, 16:04

La numérotation n'a rien d'important; je devais avoir picolé...
Il me semble qu'il faudrait mettre au début:
$texte = isset($_POST['nomdechamp']) ? $_POST['nomdechamp']) : "texte de départ";

Re: Remplir automatiquement zone input text

par Herve_be » 10 mars 2014, 13:17

Ah oui, évidemment !
Bon le principe fonctionne parfaitement sauf un détail : je ne souhaite pas que le texte soit remplacé par l'invite quand on clique sur l'icone, mais qu'on ajoute l'invite correspondant au bouton; j'ai donc fait ceci

Code : Tout sélectionner

switch ($bouton) { case 1: $texte = $texte."bouton 1 activé"; break; case 2: $texte = $texte."bouton 2 activé"; break; case 3: $texte = $texte."bouton 3 active"; break; }
mais ça ne fonctionne pas.
Si je clique sur bouton 2 j'obtiens bien "bouton 2 activé"
mais si je clique ensuite sur bouton 3 j'obtiens "bouton 3 active" alors que je voudrais "bouton 2 activébouton 3 active".

Question subsidiaire : pourquoi commences-tu à numéroter les boutons à 2 ?

Re: Remplir automatiquement zone input text

par sirakawa » 10 mars 2014, 12:31

C'est pourquoi j'écris :
print "<form.....>"; pour être en php

Re: Remplir automatiquement zone input text

par Herve_be » 10 mars 2014, 11:01

Bonjour,
Je comprends ce que tu veux faire : rappeler le même module en lui renvoyant ses paramètres input; OK.
Il y a cependant un détail qui ne fonctionne pas

Code : Tout sélectionner

<input type = 'text' name =' champ1' id = '1' value ='$texte' /> <input type = 'hidden' name = 'ID' value ='$ID' /> <input type = 'hidden' name = 'pin' value = '$pin' />
La valeur reçue dans la zone text n'est pas le contenu de la variable $texte mais le string "$texte" !
Idem pour les 2 valeurs $ID et $pin.
C'est d'ailleurs bien normal puisque à ce moment je suis en html, pas en php.
Merci pour ton aide en tout cas, je crois qu'on y est presque.
Rudy

Re: Remplir automatiquement zone input text

par sirakawa » 09 mars 2014, 20:54

Je rappelle le même module parce que c'est le seul moyen de savoir sans Javascript quel bouton a été coché.
ajoute dans le formulaire:
<input type = 'hidden' name = 'ID' value ='$ID' />
<input type = 'hidden' name = 'pin' value = '$pin' />
Javascript se passe sur la machine cliente et détecte immédatement les actions.
PHP se passe sur la machine serveur et détecte seulement quand le formulaire est envoyé...

Re: Remplir automatiquement zone input text

par Herve_be » 09 mars 2014, 18:48

Merci pour ta réponse.
J'ai essayé de traduire vers mon fichier php mais comme je ne comprends pas tout évidemment ça ne fonctionne pas :oops:
Voici mon code, le fichier s'appelle RegLogAll.php

Code : Tout sélectionner

$bouton = isset($_POST['bouton']) ? $_POST['bouton'] : 1; switch ($bouton) { case 1: $texte = ""; break; case 2: $texte = "bouton 2 activé"; break; case 3: $texte = "bouton 3 active"; break; default: $texte = ""; break; } ?> <p align=center> <form method="post" action="SendMail.php"> <p align=center>Commentaire : <input type='text' size='100' name='Comment'> <p align=center><input type="submit" value="Confirmer"> <input type="button" value="Annuler" onClick="window.location.href='index.php'"></p> <input type = 'text' name =' champ1' id = '1' value ='$texte' /> <button name = 'bouton' value ='2' formaction ='RegLogAll.php'><img src = 'avi.png'></button> <button name = 'bouton' value ='3' formaction ='RegLogAll.php'><img src = 'gif.png'></button> </form>
Je ne comprends pas bien pourquoi tu rappelles le même module (formaction ='RegLogAll.php')
Quand je l'appelle c'est avec des paramètres identification et mot de passe
$ID = $_POST["ID"];
$pin = $_POST["pin"];
et il vérifie via un query Mysql que les paramètres sont corrects.
Quand il s'appelle lui-même les paramètres ne sont plus corrects; ça n'a rien à voir avec ma question initiale mais je voudrais éviter qu'il s'appelle lui-même; possible ?

Re: Remplir automatiquement zone input text

par sirakawa » 09 mars 2014, 14:17

En php, il faut que tu aies qqch du genre (exemple sur les icones que j'ai en stock):
<?PHP
/*index.php*/
print_r($_POST);
$bouton = isset($_POST['bouton']) ? $_POST['bouton'] : 1;
switch ($bouton)
{
	case 1:
		$texte = "";
		break;
	case 2:
		$texte = "bouton 2 activé";
		break;
	case 3:
		$texte = "bouton 3 active";
		break;
	default:
		$texte = "";
		break;
}
print "<form method = 'post'>
	<input type = 'text' name =' champ1' id = '1' value ='$texte' />
	<button name = 'bouton' value ='2' formaction ='index.php'><img src = 'avi.png'></button>	
<button name = 'bouton' value ='3' formaction ='index.php'><img src = 'gif.png'></button>	
</form>"


?>

Re: Remplir automatiquement zone input text

par Herve_be » 09 mars 2014, 11:24

Bonjour et merci,
Je vais reposer ma question dans la section java.
Mais si quelqu'un avait une solution en php je reste preneur.
RV

Re: Remplir automatiquement zone input text

par sirakawa » 08 mars 2014, 20:39

Alors, il va surement falloir passer par javascript:
sur les icones tu mets un onclick qui déclenche une fonction qui modifie le texte de ton champ.
Il faut pour ça que tous les champs à remplir ainsi aient des id différents (rappel name = '' sert à html et id ='' sert à javascript)

Re: Remplir automatiquement zone input text

par Herve_be » 08 mars 2014, 18:37

D'une part je ne pense pas qu'on puisse utiliser des icônes avec un Select
D'autre part comment remplir ma zone input text en fonction de l'option choisie ?
Car ce que je voudrais ajouter est une invite que l'utilisateur doit compléter avant de cliquer sur "confirmer".

Re: Remplir automatiquement zone input text

par sirakawa » 08 mars 2014, 18:15

Bonjour,

Serait-il plus compliqué d'utiliser un <select>?