Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Dane z formularza
Forum PHP.pl > Forum > Przedszkole
Kao
Witam

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:
  1. <?php
  2. function display_val($val) {
  3.  return htmlentities(trim($val),ENT_QUOTES,'UTF-8');
  4. }
  5. ?>


sprawdzenie co w tekście siedzi niedozwolonego:

  1. <?php
  2. if (check_submit()) {
  3.  
  4.    mb_regex_encoding('UTF-8');
  5.    $post_name = display_val($_POST['name']);
  6.    $post_eml = display_val($_POST['eml']);
  7.    $post_temat = display_val($_POST['temat']);
  8.    $post_tresc = display_val($_POST['tresc']);
  9.    
  10.    // imię - dozwolone litery, cyfry, spacje, od 2 do 50 znaków
  11.    // UWAGA: spację między znakami a 0 przy wklejaniu kodu należy usunąć
  12.    $post_name_t = (mb_eregi("^[wd 040]{2,50}$", $post_name)) ? TRUE : FALSE;
  13.    
  14.    // czy email prawidłowy
  15.    $post_eml_t = filter_var($post_eml, FILTER_VALIDATE_EMAIL) ? TRUE : FALSE;
  16.    
  17.    // temat i treść - dozwolone troszkę więcej ale za to coś się pierdzieli jak za dużo spacji
  18.     // UWAGA: spację między znakami a 0 oraz a ? przy wklejaniu kodu należy usunąć
  19.    $post_temat_t = (mb_eregi("^[wd-_., 040 ?!:+]{1,150}$", $post_temat)) ? TRUE : FALSE;
  20.    $post_tresc_t = (mb_eregi("^[wd-_., 040 ?!:+\nr\t]{1,1000}$", $post_tresc)) ? TRUE : FALSE;
  21.    
  22.    // sprawdzamy czy dane poprawne jak tak to wysyłamy formularz jak nie wyświetlamy komunikat i dane w polach!
  23.    if ($post_name_t && $post_eml_t && $post_tresc_t && check_captcha()) {
  24. ?>


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
potreb
Jeżeli chcesz sprawdzić np dane zawierające tzw śmieci, użyj preg_match, aby pozostawił tylko litery i ewentualnie te znaki, które wg ciebie są "słuszne".
Kao
Dane są różne znaki typowo polskie i niemieckie, więc preg_match odpada!! chyba, że jakoś kodowanie rozpoznaje?questionmark.gifquestionmark.gif


Pozdr.
Kao
potreb
Nie wiem czy jest sens sprawdzania tak dokładnie danych.
Nigdy u siebie takich zakręconych mechanizmów nie stosowałem i zapewne większość osób.
Jeżeli chodzi o znaki niemieckie to masz maks 8 dodatkowych i polskie, które można wpisać w preg_match.
Kao
1. A co z kolejnymi językami ? Tak będę dopisywał, dopisywał, dopisywał ...questionmark.gif?
2. Co z moimi pytaniami ?

Pozdr.
KaO
potreb
Nie wiem, ale jeszcze się nie spotkałem z mechanizmem, który sprawdza w jakim języku ktoś pisze.
Jeszcze czyszczenie z tagów.
strip_tags" title="Zobacz w manualu PHP" target="_manual
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.