php formularz
Po napisaniu formularza w html, i daniu metody POST, przed wykonaniem kodu w pliku docelowym, warto sprawdzić czy dane na pewno zostały przesłane formularzem, czy ktoś próbuje nadpisać używając linku url. Możemy to osiągnąć poprzez warunek if:
if($_SERVER[„REQUEST_METHOD”] == „POST”) { …do something }
Ze względów bezpieczeństwa, pamiętaj by za każdym razem 'oczyścić’ pobierane dane by nikt nie wykorzystał wstrzyknięcie (inject) kodu mogącego zniszczyć stronę czy bazę danych.
Czyli zasada – nigdy nie ufaj danym otrzymywanym od użytkownika.
Możemy do tego wykorzystać wbudowana w php funkcje htmlspecialchars() – dzięki temu nawet jeśli ktoś wprowadzi kod do pola input formularza, nie zostanie on zapisany jako kod tylko znaki specjalne zostana zamienione na HTML entities dzięki czemu nie będzie mógł on zostać wywołany.
Odesłanie usera po wypełnieniu formularzu do strony home poprzez funkcję header(„Location: ../index.php”);
Kolejnym ważnym krokiem jest sprawdzenie czy dane nie zostały pobrane puste, bo pomimo dobrych zabezpieczeń na stronie formularza, może się zdarzyć że jednak nie wszystko zostanie poprawnie wypełnione i wysłane (np. poprzez użycie narzędzi przeglądarki DevTools i usunięcie tych zabezpieczeń), wtedy należy sprawdzić czy otrzymane wartości nie są puste za pomocą metody php empty().
Należy wiec pamiętać by zawsze używać server side metod zabezpieczeń.
if($_SERVER["REQUEST_METHOD"] == "POST") { $firstname = htmlspecialchars($_POST["firstname"]); if(empty($firstname)) { exit(); header("Location: ../index.php"); } } else { header("Location: ../index.php"); }
Hope this helps and happy coding :)
Zobacz jeszcze
php - podstawy i założenia
Każdy zapis w języku php musi zaczynać się od otwarcia < ?php oraz na samym końcu zamknięcia ?>. Wyjątkiem są dokumenty pisane w czystym php (bez dodatku HTML czy innych języków),...