Gettype retourne une string

Fermé
Ozilie - 7 nov. 2014 à 15:19
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 7 nov. 2014 à 15:49
Bonjour,

J'ai un petit soucis avec la fonction gettype()... En effet j'ai fais une page formulaire qui demande de rentrer 2 chiffres et une opération à réaliser sur ces deux chiffres.

Sur une deuxième page je reçois ces variables via la méthode POST, cependant pour plus de sécurité et pour tester la nature des variables j'effectue un gettype sur ces 2 variables.

Et ça coince ici, le gettype me renvoie la valeur "string"...
Je rentre pourtant deux entiers sur lesquelles je peux d'ailleurs effectuer mon opération correctement.

Pourquoi gettype() ne me retourne pas interger ou float?

1 réponse

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
7 nov. 2014 à 15:49
Bonjour,

Les données en $_POST ou $_GET sont toujours des chaînes de caractères, quelle que soit leur valeur.

Pour vérifier si le contenu de la chaîne de caractère est numérique, tu peux utiliser la fonction is_numeric().
Et ensuite le convertir en entier :
$valeur1 = false;
$valeur2 = false;
if (is_numeric($_POST['valeur1']))
    $valeur1 = (int)$_POST['valeur1'];
if (is_numeric($_POST['valeur2']))
    $valeur2 = (int)$_POST['valeur2'];

if ($valeur1 !== false && $valeur2 !== false)
    echo $valeur1 * $valeur2;
else
    echo 'Erreur de type ! Veuillez entrer deux nombres entiers.';


Xavier
0