[RESOLU] is_int()

moez elouaer
Invité n'ayant pas de compte PHPfrance

17 avr. 2013, 00:24

formulaire.htm :

<form method="POST" action="valid.php">
<input type="text" name="num" size="20"><input type="submit" value="Envoyer" name="B1">
</form>


valid.php :
<?php
$num = $_POST['num'];
echo gettype($num);
?>

j'ai entré ds la zone de texte de mon formulaire la valeur 55 pourquoi ça me retourne :

string

Mammouth du PHP | 571 Messages

17 avr. 2013, 00:29

les données reçues d'un formulaire sont toutes des String. Tu dois faire ceci:
$num = intval($_POST['num']); 

//ou encore
$num = (int)$_POST['num']; 
A toi de choisir

moez elouaer
Invité n'ayant pas de compte PHPfrance

17 avr. 2013, 00:48

merci

ViPHP
AB
ViPHP | 5818 Messages

17 avr. 2013, 03:20

Eventuellement pour une variable issue d'un formulaire tu peux aussi utiliser les filtres qui vont bien :
$num = filter_input(INPUT_POST, 'num', FILTER_VALIDATE_INT);	
Cela te permettrait une analyse plus fine que de caster directement la variable à réception du post. Car dans ce cas si la saisie dans le formulaire n'est pas un entier alors $num sera égal à false et sinon la variable sera castée en entier
Si par contre tu caste directement ta variable en entier, elle vaudra 0 si la saisie n'est pas un entier et donc impossible entre autre de faire la différence entre la saisie d'une chaine de caractère qui donnera 0 et le nombre 0.

Eléphanteau du PHP | 14 Messages

18 avr. 2013, 01:39

merci ça marche