Position actuelle: Accueil> Derniers articles> Utiliser la fonction is_real pour la vérification des données pendant le traitement du formulaire

Utiliser la fonction is_real pour la vérification des données pendant le traitement du formulaire

gitbox 2025-05-26

Qu'est-ce que c'est_real ()?

is_real () est une fonction de PHP qui a été utilisée dans les versions antérieures pour détecter si une variable était un numéro de point flottant. Fonctionnellement, il est équivalent à is_float () ou is_double () . Par exemple:

 $price = 12.99;
if (is_real($price)) {
    echo "Le prix est un numéro de point flottant";
}

Bien que ce code fonctionnera correctement avant PHP 7.4, l'exécution de ce code dans les versions PHP modernes générera un avertissement de dépréciation, et supprimera même cette fonction complètement dans les futures versions.


Pratique plus recommandée: utilisez IS_FLOAT ()

Pendant le traitement du formulaire, les données soumises par l'utilisateur sont généralement reçues sous la forme d'une chaîne via $ _post ou $ _get . L'utilisation de is_float () ou is_real () directement pour déterminer ces valeurs renvoie généralement fausse car la chaîne n'est pas un type de point flottant même si le contenu de la chaîne est un nombre.

Pour résoudre ce problème, nous devons généralement convertir la chaîne en un numéro de point flottant avant d'effectuer une vérification de type. Les exemples sont les suivants:

 $input = $_POST['price'];

$floatVal = floatval($input);
if (is_float($floatVal)) {
    echo "L'entrée est un numéro de point flottant valide";
} else {
    echo "Veuillez saisir le format de point flottant correct";
}

Mais il y a un problème potentiel avec cette approche: FloatVal () essaiera de convertir n'importe quelle chaîne en un numéro de point flottant, qui peut retourner 0,0 même si l'entrée est illégale. Par conséquent, un moyen plus sûr consiste à utiliser Filter_Var () avec filter_validate_float pour la vérification.


Utilisez filter_var () pour vérifier plus en toute sécurité les nombres à virgule flottante

 $input = $_POST['price'];

if (filter_var($input, FILTER_VALIDATE_FLOAT) !== false) {
    echo "L'entrée est un numéro de point flottant valide";
} else {
    echo "Veuillez saisir le format de point flottant correct";
}

Cette méthode peut éviter efficacement le problème que les entrées mixtes telles que "ABC12.34" sont confondues avec des nombres de points flottants valides.


Exemple: Terminez le code de traitement du formulaire

Supposons que nous ayons un formulaire pour soumettre des prix, avec l'adresse de soumission https://gitbox.net/submit.php :

 <?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $price = $_POST['price'];

    if (filter_var($price, FILTER_VALIDATE_FLOAT) !== false) {
        echo "La soumission des prix a réussi,La valeur est:" . floatval($price);
        // Ici, vous pouvez continuer à écrire des bases de données ou d&#39;autres logiques
    } else {
        echo "erreur:Veuillez saisir un numéro de point flottant légal!";
    }
}
?>
<form method="POST" action="https://gitbox.net/submit.php">
    <label for="price">Entrer le prix:</label>
    <input type="text" name="price" id="price" required>
    <input type="submit" value="soumettre">
</form>