2010-11-17 30 views
4

Je me demandais s'il était possible d'attribuer une valeur à une zone de texte HTML et de la protéger. Ce que je veux dire, c'est rendre son contenu non modifiable, de sorte que lorsque le formulaire est soumis, je suis "sûr" que c'est cette valeur qui a été soumise.Valeur de la zone de texte "Protéger" de l'entrée (formulaire HTML)

BTW Je me rends compte que le moyen le plus simple serait de ne pas "écouter" cette entrée et de l'assigner simplement, mais cela serait utile pour faire ce qui est indiqué ci-dessus.

J'espère que la question est assez claire, s'il vous plaît demander toute clarification nécessaire.

Merci d'avance!

EDIT: J'étais certainement pas assez clair, mais j'ai essayé d'exprimer ce que je devrais tenir la valeur après soumis (non modifiable dans le côté client)

Répondre

7

Non, ce n'est pas. Vous ne devez jamais faire confiance à l'entrée de l'utilisateur, qui inclut les soumissions de formulaires.

Les autres réponses vous indiquent comment marquer le champ en lecture seule. Ceci est utile si vous voulez afficher une valeur particulière, tout en montrant que ce n'est pas destiné à éditer.

Cependant, il peut toujours être modifié avec Firebug, DOM Inspector, etc. Ou, ils peuvent simplement soumettre une requête HTTP sans utiliser le navigateur du tout.

Je vous recommande de stocker la valeur dans une session à la place.

+0

Désolé, vous dites que la valeur en lecture seule n'est pas "sûre"? – Trufa

+1

@Trufa, correct. –

+0

Ok donc les sessions sont la voie à suivre, javascript serait plus de la asme comme toute solution côté client, ai-je raison? – Trufa

2

entrées de formulaire ont un « handicapé » et « lecture seule » attributs que vous pouvez ensemble pour les rendre non modifiables.

http://htmlhelp.com/reference/html40/forms/input.html

Bien que vous ne pouvez jamais être sûr à 100% ce qui s'envoyé du côté client. Le DOM entier est modifiable par le client.

4

Définissez la propriété readonly de l'élément d'entrée:

<input type="text" readonly="readonly" /> 

Cela permettra d'éviter toute modification (sauf si l'utilisateur édite avec un inspecteur DOM). Toujours valider l'entrée sur le serveur. Si vous ne voulez aucune modification, n'autorisez pas l'utilisateur à le modifier.

http://www.w3schools.com/tags/att_input_readonly.asp

2

Il suffit de faire ce

<input type="text" value="VALUE" readonly /> 

Alors ça va être lu uniquement :)

3

<input type="text" readonly="readonly"/>. Mais: Ne soyez jamais sûr, et validez les données côté serveur. Il est très facile de demander GET/POST avec des données invalides.