Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pytanie o użycie funkcji walidującej input
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Cześć. Załóżmy, że mam metodę/funkcję myValidateInput($input); której używam do oczyszczania inputów od usera z różnych (groźnych) śmieci. Jest dla mnie oczywiste że w poniższym kodzie trzeba jej użyć.
  1. echo myValidateInput($_POST['siema']);
  2. $name = myValidateInput($_POST['name']);
  3.  
  4. $query = "INSERT INTO `table` (`id`, `name`) VALUES (null, '$name')";
  5. $db->query($query);
  6. $db->execute();


A czy trzeba również przy użyciu isset, empty itd? Np tutaj jest to zasadne?
  1. if(isset(myValidateInput($_POST['submit'])){
  2. //coś tam
  3. }
nospor
Cytat
że mam metodę/funkcję myValidateInput($input); której używam do oczyszczania inputów od usera z różnych (groźnych) śmieci.

No i znowu nazewnictwo z 4 liter. Ile razy mozna o to prosic.
Albo walidujesz i wowczas validate to dobra nazwa, albo czyscisz a wtedy validate ma sie nijak to dotego robi funkcja

Naprawde, odpusc sobie czysczenie na tym etapie. Do niczego ci nie jest potrzebne tutaj. Zes sie uparl na to czyszczenie sam nie wiedzac po co ci ono jest potrzebne odnosze wrazenie

$query = "INSERT INTO `table` (`id`, `name`) VALUES (null, '$name')";
Lepiej przejdz wkoncu na BINDowanie, wiecej bedziesz mial z tego pozytku
viking
No iu tez ile razy można pisać że ta ogólna funkcja walidująca jest do niczego a Ty masz zacząć korzystać z bindowania (które notabene wprowadziłeś w tej swojej klasie db).
sadistic_son
Cytat(nospor @ 10.01.2023, 10:27:28 ) *
No i znowu nazewnictwo z 4 liter. Ile razy mozna o to prosic.
No ale gdzie? $_POST['name'] to jest błąd? Ma być np 'nameOfProduct' czy jak? Czy $db jest źle nazwane?

Cytat(nospor @ 10.01.2023, 10:27:28 ) *
Albo walidujesz i wowczas validate to dobra nazwa, albo czyscisz a wtedy validate ma sie nijak to dotego robi funkcja
Ok, got it. To mnie interesuje czyszczenie a nie walidacja.

Cytat(nospor @ 10.01.2023, 10:27:28 ) *
Naprawde, odpusc sobie czysczenie na tym etapie. Do niczego ci nie jest potrzebne tutaj. Zes sie uparl na to czyszczenie sam nie wiedzac po co ci ono jest potrzebne odnosze wrazenie

$query = "INSERT INTO `table` (`id`, `name`) VALUES (null, '$name')";
Lepiej przejdz wkoncu na BINDowanie, wiecej bedziesz mial z tego pozytku
Właściwie to bindowanie chyba mi rzeczywiście tutaj, w tym projekcie wystarczy, bo jedyne co robię z danymi z inputów to przetwarzam w pętli i wrzucam do bazy.


Cytat(viking @ 10.01.2023, 10:27:47 ) *
No iu tez ile razy można pisać że ta ogólna funkcja walidująca jest do niczego a Ty masz zacząć korzystać z bindowania (które notabene wprowadziłeś w tej swojej klasie db).
Nie mam obecnie żadnej metody czyszczenia danych. Po ostatnim temacie w tej sprawie zrezygnowałem z tego FILTER_SANITIZE_STRING bo mi wyjaśniłeś, że to jest o kant pośladków smile.gif


Czyli do bazy bindowanie styknie beż żadnego wrzucania POSTa w funkcje czyszczące, tak? Nie trzeba nawet htmlspecialchars robić?

Dzięki.
nospor
Cytat
No ale gdzie? $_POST['name'] to jest błąd? Ma być np 'nameOfProduct' czy jak? Czy $db jest źle nazwane?

Toc napisalem: myValidateInput. Niby funkcja sie nazywa VALIDATE a ty chcesz w niej robic CZYSCZENIE. No albo jedno albo drugie

Cytat
zyli do bazy bindowanie styknie beż żadnego wrzucania POSTa w funkcje czyszczące, tak? Nie trzeba nawet htmlspecialchars robić?

BINDowanie to podstawa. A htmlspecialchars masz robic do wyswietlania danych tekstowych
sadistic_son
OMFG biggrin.gif
Cytat(nospor @ 10.01.2023, 10:23:07 ) *
No i znowu nazewnictwo z 4 liter.

Ja to odbierałem cały czas, że chodzi o to że tworzę zmienne mające 4 lub mniej liter w nazwie, stąd są za mało jasne biggrin.gif A tobie chodzi o "nazewnictwo z dvpy" biggrin.gif



Cytat(nospor @ 10.01.2023, 10:42:23 ) *
BINDowanie to podstawa. A htmlspecialchars masz robic do wyswietlania danych tekstowych

Clear. Thanks smile.gif
nospor
Cytat
A tobie chodzi o "nazewnictwo z dvpy"

Haha, dobrze ze wkoncu zatrybiles biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.