Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie die IS_REAL -Funktion für die Datenüberprüfung während der Form der Formularverarbeitung

Verwenden Sie die IS_REAL -Funktion für die Datenüberprüfung während der Form der Formularverarbeitung

gitbox 2025-05-26

Was ist is_real ()?

is_real () ist eine Funktion in PHP, die in früheren Versionen verwendet wurde, um festzustellen, ob eine Variable eine schwimmende Punktzahl war. Funktionell entspricht es is_float () oder is_double () . Zum Beispiel:

 $price = 12.99;
if (is_real($price)) {
    echo "Der Preis ist eine schwebende Punktzahl";
}

Obwohl dieser Code vor PHP 7.4 ordnungsgemäß funktioniert, wird dieser Code in modernen PHP -Versionen eine Abschaltwarnung erzeugen und diese Funktion sogar in zukünftigen Versionen vollständig beseitigen.


Weitere empfohlene Praxis: Verwenden Sie IS_Float ()

Während der Formulierung werden Benutzer in Form einer Zeichenfolge über $ _post oder $ _get normalerweise in Form einer Zeichenfolge empfangen. Verwenden von is_float () oder is_real () direkt, um diese Werte zu bestimmen, gibt normalerweise false zurück, da die Zeichenfolge kein schwimmender Punkttyp ist, selbst wenn der Inhalt der Zeichenfolge eine Zahl ist.

Um dieses Problem zu lösen, müssen wir die Zeichenfolge normalerweise in eine schwimmende Punktnummer konvertieren, bevor wir die Typüberprüfung durchführen. Beispiele sind wie folgt:

 $input = $_POST['price'];

$floatVal = floatval($input);
if (is_float($floatVal)) {
    echo "Die Eingabe ist eine gültige schwimmende Punktzahl";
} else {
    echo "Bitte geben Sie das richtige Gleitkommaformat ein";
}

Bei diesem Ansatz gibt es jedoch ein potenzielles Problem: Floatval () versucht, eine Zeichenfolge in eine schwimmende Punktzahl umzuwandeln, die 0,0 zurückgeben kann, selbst wenn der Eingang illegal ist. Daher ist eine sicherere Möglichkeit, filter_var () mit filter_validate_float zur Überprüfung zu verwenden.


Verwenden Sie filter_var (), um die Gleitkomma-Nummern sicherer zu überprüfen

 $input = $_POST['price'];

if (filter_var($input, FILTER_VALIDATE_FLOAT) !== false) {
    echo "Die Eingabe ist eine gültige schwimmende Punktzahl";
} else {
    echo "Bitte geben Sie das richtige Gleitkommaformat ein";
}

Diese Methode kann das Problem effektiv vermeiden, dass gemischte Eingänge wie "ABC12.34" für gültige schwimmende Punktzahlen verwechselt werden.


Beispiel: Vollständiger Formularverarbeitungscode

Angenommen, wir haben ein Formular zum Einreichen von Preisen mit der Einreichungsadresse https://gitbox.net/submit.php :

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

    if (filter_var($price, FILTER_VALIDATE_FLOAT) !== false) {
        echo "Die Preisübermittlung war erfolgreich,Der Wert ist:" . floatval($price);
        // Hier können Sie weiterhin Datenbanken oder andere Logik schreiben
    } else {
        echo "Fehler:Bitte geben Sie eine legale schwebende Punktnummer ein!";
    }
}
?>
<form method="POST" action="https://gitbox.net/submit.php">
    <label for="price">Geben Sie den Preis ein:</label>
    <input type="text" name="price" id="price" required>
    <input type="submit" value="einreichen">
</form>