transtypage .. ?

ViPHP
ViPHP | 3607 Messages

11 janv. 2007, 14:11

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 janv. 2007, 15:52

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 3607 Messages

11 janv. 2007, 15:54

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?

Eléphant du PHP | 445 Messages

11 janv. 2007, 15:56

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.
LLDC
Ulti

ViPHP
ViPHP | 3607 Messages

11 janv. 2007, 15:59

c'est bon j'ai rajouter un ctype_digit() et ça roule!
merci ;-)