Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Dane z formularza
Kao
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 19.10.2004
Skąd: Zgorzelec

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
potreb
post
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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".

Ten post edytował potreb 16.06.2009, 21:16:02
Go to the top of the page
+Quote Post
Kao
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 19.10.2004
Skąd: Zgorzelec

Ostrzeżenie: (0%)
-----


Dane są różne znaki typowo polskie i niemieckie, więc preg_match odpada!! chyba, że jakoś kodowanie rozpoznaje?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)


Pozdr.
Kao
Go to the top of the page
+Quote Post
potreb
post
Post #4





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Kao
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 19.10.2004
Skąd: Zgorzelec

Ostrzeżenie: (0%)
-----


1. A co z kolejnymi językami ? Tak będę dopisywał, dopisywał, dopisywał ...(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
2. Co z moimi pytaniami ?

Pozdr.
KaO
Go to the top of the page
+Quote Post
potreb
post
Post #6





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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

Ten post edytował potreb 16.06.2009, 21:38:49
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 01:44