Sanityzacja liczb zmiennoprzecinkowych (floatval)
Założenie: Nauczymy się, jak bezpiecznie konwertować wartości pobrane z formularza na liczby zmiennoprzecinkowe (float) w PHP, używając funkcji floatval()
.
Krok po kroku:
- Pobranie danych z formularza: Załóżmy, że użytkownik wprowadził cenę w formularzu o nazwie
cena
. - Sanityzacja danych za pomocą
floatval()
: Funkcjafloatval()
konwertuje podaną wartość na liczbę zmiennoprzecinkową. Jeśli wartość nie może być przekonwertowana, zwróci 0. - Sprawdzenie poprawności danych (opcjonalnie): Możesz dodać sprawdzenie, czy konwersja przebiegła pomyślnie i czy wartość jest w dopuszczalnym zakresie.
$cena_z_formularza = $_POST['cena'];
Ten kod pobiera wartość z pola formularza o nazwie “cena”. Zauważ, że $_POST['cena']
zawiera surową wartość wprowadzoną przez użytkownika i może być podatna na ataki (np. SQL injection, jeśli używana jest bezpośrednio w zapytaniu do bazy danych).
$cena = floatval($cena_z_formularza);
Ten kod konwertuje wartość $cena_z_formularza
na liczbę zmiennoprzecinkową i zapisuje ją do zmiennej $cena
. To chroni nas przed potencjalnymi błędami i atakami, ponieważ floatval()
ignoruje nieprawidłowe znaki.
if ($cena <= 0) {
echo "Błędna cena!";
} else {
echo "Cena: " . $cena;
}
Ten kod sprawdza, czy cena jest większa od zera. Możesz dodać bardziej zaawansowane walidacje w zależności od potrzeb.
Ten przykład pokazuje podstawy sanityzacji danych w PHP. Pamiętaj, że zawsze należy walidować i sanitizować dane pochodzące z zewnątrz, aby zabezpieczyć swoją aplikację przed atakami.