Page 1 sur 1

transtypage .. ?

Posté : 11 janv. 2007, 14:11
par jojolapine
bonjour à tous,
j'essaye actuellement de valider une date remplie dans un formulaire, et comme j'ai mis trios champs (un pour les jours un pour les mois, un pour l'année...)
je me demande juste une chose, je récupère les données en post, et je me demandais si les (int) étaient nécessaire... voici ma fonction:
function verif_date($var,$inf,$sup){
  return (((int)$var<$sup) && ((int)$var>$inf));
}

//utilisation

//$_POST['date1'] => 12

verif_date($_POST['date1'],0,13); // je veu que ça retourne true

verif_date($_POST['date3'],1970,2050); // je veu que ça retourne true
voilà c'est juste pour un peu d'optimisation ;-)
merci d'avance

Posté : 11 janv. 2007, 15:52
par Ryle
A priori php fait les conversions automatiquement en fonction des opérations que tu effectues :
echo "1" + "1"; // affiche 2
echo "1" . 1; // affiche 11
echo 1 . 1; // affiche 11
Donc en théorie, c'est mieux (et puis beaucoup de langage ne le font pas, donc vaut mieux prendre l'habitude de pas mélanger les types), mais en pratique dans ton cas c'est pas nécessaire :)

Posté : 11 janv. 2007, 15:54
par jojolapine
je viens de me rendre compte d'un problème, si on entre autre chose q'un chiffre dans l'input, ça n'ira pas... car (int)'blah'==0 non?

Posté : 11 janv. 2007, 15:56
par Ultim4T0m
Tu devrais faire quelques petites vérifications avant d'appeler ta fonction. Vérifier si c'est bien une valeur numérique, si c'est bien un entier, etc.

Posté : 11 janv. 2007, 15:59
par jojolapine
c'est bon j'ai rajouter un ctype_digit() et ça roule!
merci ;-)