Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Filtorwanie formularza
Forum PHP.pl > Forum > Przedszkole
WEC_26
Mam formularz:
  1. <form action="wpisz.php" method="post">
  2. <textarea name="opis">Tekst</textarea>
  3. <button type="submit" />Zapisz</button>
  4. </form>


I chcę oby $_POST[opis] został przefiltrowany, np z wyrazu "oko", czyli jak w treści będzie wyraz oko to zeby wyswietlil się "Błąd!". Próbowałem to zrobić za pomocą stworzonej funkcji:
  1. <?php
  2. function sprawdz_reszte($reszta) {
  3.  if(!preg_match('/^[a-z0-9.-_]+oko([a-z0-9-_]+.)*?[a-z]+$/is', $reszta)) {
  4. return true;
  5.  }
  6.  else {
  7. return false;
  8.  }
  9. }
  10.  
  11. if(sprawdz_reszte($_POST[opis])) {
  12. echo "OK";
  13. }
  14. else {
  15. echo "Błąd!";
  16. }
  17. ?>

ale ten sposób nie działa...

Czy jest inny sposób na zrobienie takiego czegoś?
ikioloak
Jesli chcesz sprawdzic tylko czy dany wyraz wystepuje w ciagu to uzyj strpos" title="Zobacz w manualu php" target="_manual - nie ma potrzeby uzywac tutaj wyrazen regularnych.
WEC_26
  1. <?php
  2. $pos_opis = strpos($_POST[opis], "oko");
  3.  
  4. if ($pos_opis === true) {
  5. header("Location: komunikat.php?blad=opis");
  6. }
  7. ?>


Zrobiłem takie coś, ale jak wpisuje "coś tam... oko cos tam.." to nie przenosi do "komunikat.php?blad=opis", a chyba powinno...

Co tu jest źle??

// EDIT

Już znalazłem przyczynę. Zamiast "===" w funkcji if, musiałem dać "==". Teraz wszystko działa.
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.