verification is_string

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 : verification is_string

par mosquitout » 23 août 2007, 11:33

Mouais, tu as raison, c'est plus simple .

:wink:

par Ryle » 23 août 2007, 11:25

Le plus simple est peut être de l'informer avant qu'il ne soumette le formulaire, avec une infobulle, un controle javascript ou autre... ainsi tu te conteras juste ensuite de signaler le champ en erreur, à lui ensuite de lire le mode d'emploi pour voir ce qui ne va pas :)

par mosquitout » 23 août 2007, 11:22

Yep, merci Ryle, je vais suivre ton conseil et générer des messages d'erreur adéquates mais ca risque de devenir une véritable usine à gaz si on veut être précis dans les réponses affichées à l'utilisateur !

Quand au test 'is_string', je laisse tomber !

par Ryle » 23 août 2007, 11:16

C'est plus qu'un soucis de chaine vide.. toutes les valeurs envoyées via GET ou POST sont considérées comme des chaines, is_string retournera donc toujours vrai :)

Quant au traitement des données, tout dépend de l'usage du champ. En toute logique, tu ne devrais pas changer un login ou un mot de passe.. tu peux par contre virer les balises html d'un champs texte sans lui en parler.. ou changer le nom d'un fichier qu'il veut uploader...

Quant aux explications destinée à l'utilisateur, il est préférable de lui dire ce qui ne va pas, voire pour ne pas t'embêter, lui dire ce à quoi il a droit : "Ce champ est alpha / numérique / alphanumérique .. les seuls caractères spéciaux autorisés sont .. " et au moins il passera pas 3h a essayer de comprendre pourquoi ses ":" ne passent pas ;)

par mosquitout » 23 août 2007, 11:07

C'est bien ce que je me dis aussi.
Alors strlen ok je compare strlen($contenu) > $taille_max

Mais pour l'utilisation d'expression régulières, l'idée c'est quoi :
a) Réafficher le contenu de la zone en disant nan pas bon et l'utilisateur essaie de deviner ce qui ne vas pas et doir changer jusqu'a ce que ca soit accepter par mon expression régulière ?

b) je réaffiche le contenu en changeant d'office (supprimant) ce qui ne passe pas dans sa saisie / mon expression régulière ?

c) j'enregistre la donnée en ayant supprimer (changer) ce qui n'allait pas dans la saisie utilisateur ?

A titre d'exemple j'ai :
$contenu = eregi_replace("[^a-zA-Z0-9_&~@/,\.'()?! éèàêâôîûùç-]","",$contenu)

par Calimero » 23 août 2007, 10:54

Sachant qu'un champ de saisie de texte est toujours "set", c'est à dire que la variable existe et contient une chaîne vide même si tu ne mets rien dans le champ, je pense que is_string() dans ce cas ne sert à rien du tout. Il faut plutôt utiliser strlen() et/ou une expression régulière.

verification is_string

par mosquitout » 23 août 2007, 10:45

Bonjour,

Lors de la validation du contenu d'un formulaire, je fais le test 'is_string' pour des zones de saisies alphanumérique. Ce qui veut dire que je test si le contenu est bien une chaine.

Mais, dans une zone de ce type, je peux en theorie saisir n'importe quoi. Dans quel cas alors, ce test risque de me retourner une erreur ? qu'est ce que je peux bien avoir saisi dans ma zone pour que ce test me sorte une erreur ?

Merci