Gérer des dates insérer par un utilisateur

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 : Gérer des dates insérer par un utilisateur

par Ryle » 23 mai 2008, 14:44

Une série de liste déroulante ou un calendrier apporte un contrôle extrêmement léger lors de la saisie mais ne garantissent en rien le format des données, pas plus que la validité de la date lorsqu'elle est reçue par php.
Les contrôles en javascript ne servent qu'au confort utilisateur en lui faisant remarquer immédiatement une erreur de saisie, mais ne doivent en rien être considérés comme fiable ou suffisant.

Si tu veux t'assurer du format, une expression régulière fait effectivement l'affaire. Si c'est la date que tu veux contrôler (pour éviter d'avoir des 31 février) il te faut construire un objet date en php avec mktime() (en lui passant les année, mois et jour saisi par l'utilisateur) et en vérifier que le résultat obtenu est identique à celui spécifié.

par steph29 » 23 mai 2008, 14:14

le fait de proposer un calendrier n'est pas un moyen de controle...
le plus simple est de verifier le motif...
//xx/xx/xxxx
if (preg_match("/^d{2}\/d{2}\/d{4}$/",$ta_variable_a _verifier){
     echo "date_valide";
}
else echo "date_invalide";
traduction du motif:

Code : Tout sélectionner

^d{2}\/d{2}\/d{4}$
commence par 2 chiffre suivi d'un / de 2 nombre, d'un / et finissant par 4 chiffres

par d0m » 23 mai 2008, 13:35

pour controler le plus possible, tu peux:
- insérer un calendrier avec les dates cliquables
ou
- faire 3 listes déroulantes : jour, mois et année

De ce manières impossible d'entrer autre chose que des chiffres.

Dans le cas des listes, il reste toujours la possibilité de choisir une date inexistante ou future. Pour remédier à ça tu peux controler en php comme l'a dit guilt92 et un controle javascript coté client.

par guilt92 » 23 mai 2008, 13:21

Tu peux faire 3 champs différents (jour, mois, année) et ca devient plus facile à controller. Sinon comme je te l'ai dit tu peux récupérer la valeur postée dans ce champs et la traiter avec la fonction date() et mktime() et voir si cette date existe.

oui mais

par fowndi » 23 mai 2008, 13:19

c'est vrai, mais le fait est que c'est l'utilisateur qui doit entrer la date et je veus pouvoir vérifier que la date est entrer selon les normes, pour moi il faut que cette date soit de la forme xx/xx/xxxx Ex: 23/05/2008

par guilt92 » 23 mai 2008, 12:50

Ca dépend ce que tu veux dire par "contrôler", mais tu as la fonction date() et mktime() de php qui peuvent t'aider.

Gérer des dates insérer par un utilisateur

par fowndi » 23 mai 2008, 11:45

salut chers amis,
Je désire controler les données entrer dans un champ d'un formulaire avant de les insérer dans une bases, ses données sont une date de la forme XX/XX/XXXX, comment puis je proceder ??