Tworzę mały formularz na stronie, problem w tym tzw. CZYSZCZENIU, tzn. jak wprowadzi się dane nie poprawne, to formularz nie kasuje wszystkich pól z wprowadzonymi danymi, tylko informuje w którym są nie poprawne dane. I nie chcę aby przedostały się jakieś śmieci :<
Stworzyłem kilka funkcji, oczywiście wszędzie kodowanie UTF-8:
Funkcja do OCZYSZCZANIA DANYCH i wyświetlania ponownie na stronce:
<?php function display_val($val) { } ?>
sprawdzenie co w tekście siedzi niedozwolonego:
<?php if (check_submit()) { mb_regex_encoding('UTF-8'); $post_name = display_val($_POST['name']); $post_eml = display_val($_POST['eml']); $post_temat = display_val($_POST['temat']); $post_tresc = display_val($_POST['tresc']); // imię - dozwolone litery, cyfry, spacje, od 2 do 50 znaków // UWAGA: spację między znakami a 0 przy wklejaniu kodu należy usunąć $post_name_t = (mb_eregi("^[wd 040]{2,50}$", $post_name)) ? TRUE : FALSE; // czy email prawidłowy $post_eml_t = filter_var($post_eml, FILTER_VALIDATE_EMAIL) ? TRUE : FALSE; // temat i treść - dozwolone troszkę więcej ale za to coś się pierdzieli jak za dużo spacji // UWAGA: spację między znakami a 0 oraz a ? przy wklejaniu kodu należy usunąć $post_temat_t = (mb_eregi("^[wd-_., 040 ?!:+]{1,150}$", $post_temat)) ? TRUE : FALSE; $post_tresc_t = (mb_eregi("^[wd-_., 040 ?!:+\nr\t]{1,1000}$", $post_tresc)) ? TRUE : FALSE; // sprawdzamy czy dane poprawne jak tak to wysyłamy formularz jak nie wyświetlamy komunikat i dane w polach! if ($post_name_t && $post_eml_t && $post_tresc_t && check_captcha()) { ?>
I teraz czy:
1. dane wyświetlone ponownie przez funkcję display_val($val) są bezpiecznie wyświetlane na stronie?
2. czy sprawdzanie poprawności imienia, tematu i treści jest odpowiednie? Wiadomo, że nie chcę aby koś używał wszystkich znaków, a tylko nie które!
Ps.
Jeśli coś namieszałem przy tworzeniu reguł parsujący, sorry, czasami się gubię jak za bardzo złożone jest!
Z góry dziękuję za odpowiedź
Pozdr.
KaO