IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

controler une saisie date dans un formulaire


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 28
    Points : 31
    Points
    31
    Par défaut controler une saisie date dans un formulaire
    Bonsoir tous
    je suis confronter à deux (02) problèmes lorsque je tente de controler les saisies (dates) dans une zone de texte (avant de l'insérer dans une table de ma base de données) de mon formulaire avec les expressions regulières.
    Je procède comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $datecreat=htmlspecialchars($_POST['datecreat']);
    	if (eregi('([0-9]{2})/([0-9]{2})/([0-9]{4})',$datecreat,$regs)){
     
    			if (($regs[1]<32 and $regs[2]<13 and  $regs[3]<2100)) {
    				$erreurs=false;
    			}else{
    				$erreurs = true;
    				$msg .= 'VEUILLEZ SAISIR UNE DATE VALIDE.<br />';
     
    			}
                        }else{
    			 $erreurs = true;
    			 $msg .= 'VEUILLEZ SAISIR UNE DATE VALIDE.<br />';
    		}
    Ce bout de code fonctionne.
    Sauf que j'ai un message (genant) "Deprecated: Function eregi() is deprecated in C:\wamp\www\tests\insert.php on line 25"

    Voici le contenu de la ligne 25 dans mon éditeur de texte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (eregi('([0-9]{2})/([0-9]{2})/([0-9]{4})',$datecreat,$regs)){
    PROBLEME 1: Alors je voudrais bien savoir que Faire pour que ce message ne s'affiche plus.

    Aussi lorsque je mets le type de mon champ datecreated à VARCHAR je reussi à inserer la date saisie via le formulaire dans ma table.

    Par contre quand je mets le type de datecreated à DATE(ce qui est logique) l
    la date saisie dans mon formulaire ne s'insère pas dans ma table.

    Alors je pense comme ca à utiliser la fonction chekdate pour controler la saisie d'une zone de texte dans un formulaire.


    PROBLEME 2: Comment utilser la fonction checkdate pour verifier que le contenu d'une zone de texte est une date valide ?

    Voici le code d'insertion dans ma table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query="INSERT INTO `books` (`title`, `content`,`datecreated`) 
                     VALUES ('$titre', '$contenu', '$datecreat')";
    Merci bien pour un Coup de main

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut utiliser preg_match et non plus eregi.
    voir la doc :
    http://php.net/manual/fr/function.eregi.php

  3. #3
    Membre averti Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Points : 300
    Points
    300
    Par défaut
    Tu prends des soucis par ton bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $datecreat=htmlspecialchars($_POST['datecreat']);
    	if (eregi('([0-9]{2})/([0-9]{2})/([0-9]{4})',$datecreat,$regs)){
     
    			if (($regs[1]<32 and $regs[2]<13 and  $regs[3]<2100)) {
    				$erreurs=false;
    			}else{
    				$erreurs = true;
    				$msg .= 'VEUILLEZ SAISIR UNE DATE VALIDE.<br />';
     
    			}
                        }else{
    			 $erreurs = true;
    			 $msg .= 'VEUILLEZ SAISIR UNE DATE VALIDE.<br />';
    }
    T'as pû tout simplement faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $datecreat = explode('/', htmlspecialchars($_POST['datecreat']));
    $erreurs=false;
    if(!checkdate($datecreat[1], $datecreat[0], $datecreat[1]){
    $erreurs = true;
    $msg .= 'VEUILLEZ SAISIR UNE DATE VALIDE.<br />';
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. rendre une saisie obligatoire dans un formulaire
    Par heteroclite dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/09/2006, 23h26
  2. [Dates] saisie d'une date dans un formulaire
    Par heteroclite dans le forum Langage
    Réponses: 2
    Dernier message: 17/07/2006, 09h11
  3. mettre une date dans un formulaire
    Par mademoizel dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/06/2006, 11h09
  4. insere une date dans un formulaire
    Par lepeintre dans le forum ASP
    Réponses: 5
    Dernier message: 13/05/2005, 10h46
  5. Réponses: 3
    Dernier message: 19/03/2003, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo