Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2011, 12h30   #1
Membre régulier
 
Avatar de laloune
 
Inscription : mai 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 180
Points : 88
Points : 88
Par défaut fonction checkdate et nombre négatifs ?

bonjour à tous,

je dois vérifier une date saisie qui est au format dd/mm/yyyy. je vérifie d'abord le format avec une expression reg, puis la cohérence avec checkdate.

le format est ok, mais la cohérence ne va pas vu que si je saisis "-12/12/2010" checkdate me renvoie ok !

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
			$dateentry="-12/12/2010";
				if (ereg('([0-9]{2})/([0-9]{2})/([0-9]{4})',$dateentry,$regs))
				{
					if (checkdate($regs[2],$regs[1],$regs[3]))
					{
						echo "date ok";											
					}
					else
					{
						echo "date incorrecte";
					}
				}
				else
				{
					echo "format de la date mauvais";
				}
?>
auriez-vous une idée s'il vous plait ?

d'avance merci !
__________________
laloune
éternel apprenti développeur (pas de formation)

"C'est le jeu ma pauvre Lucette"
laloune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 12h52   #2
Rédacteur
 
Avatar de Halleck
 
Développeur PHP & Architecte logiciel
Inscription : mars 2003
Messages : 562
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Loiret (Centre)

Informations professionnelles :
Activité : Développeur PHP & Architecte logiciel

Informations forums :
Inscription : mars 2003
Messages : 562
Points : 1 379
Points : 1 379
Ton nombre négatif n'est jamais passé à checkdate(), vu que ton expression régulière ne capture que les entiers.

Au pire, si tu ne veux pas changer ton code tu peux faire :
Code :
^([0-9]{2})/([0-9]{2})/([0-9]{4})$ // commence par, finit par
Mais au passage, ereg est déprécié, utilise plutôt preg_*
__________________
Zend PHP Certified Engineer
tutoriels : tutos PHP, Web & SEO blog : blog.lepine.pro
membre de l'AFUP (Association des Utilisateurs de PHP)
Halleck est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/12/2011, 14h14   #3
Membre régulier
 
Avatar de laloune
 
Inscription : mai 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 180
Points : 88
Points : 88
ma foi oui ca fait du sens !

et merci pour le ereg (vraiment rouillé mon php :-))

merci beaucoup pour votre aide.
__________________
laloune
éternel apprenti développeur (pas de formation)

"C'est le jeu ma pauvre Lucette"
laloune est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h45.


 
 
 
 
Partenaires

Hébergement Web