Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Filtrowanie danych w PHP
Forum PHP.pl > Forum > Przedszkole
djpotwosss
Witam, posiadam taki kod:

  1. $komentarz=nl2br(htmlspecialchars(strip_tags(mysql_real_escape_string($_POST["komentarz"]))));


Chcę by w formularzu(input) wprowadzone entery były przesyłane w formie tekstu. Chcę by dozwolony był tylko znak <br>. Jak to zrobić? I przy okazji chcę też zabezpieczyć formularz smile.gif Dlatego mam tyle funkcji
trueblue
http://pl1.php.net/strip_tags
Drugi argument.
djpotwosss
To w takim razie jak to zastosować by wszystko inne filtrowało oprócz <br> >
trueblue
Skoro allowed_tags oznacza dozwolone tagi, to:
strip_tags($string,"<br><br/>");
djpotwosss
Mam taki kod:
  1. $komentarz=nl2br(htmlspecialchars(strip_tags(mysql_real_escape_string($_POST["komentarz"]),"<br><br/>")));


Co do formualarza to mam:
  1. <textarea type="text" cols="42" rows="4" id="komentarz" name="komentarz" /></textarea>


I niestety gdy nacisnę Enter skrypt nie dodaje nowej linii
trueblue
Ale gdzie jest blokowany enter, w trakcie wpisywania w polu textarea?
djpotwosss
Podałem kod, któy mam na formularz textarea. Jak widać enter tam nie jest blokowany.. To co podałeś niestety nadal nie działa. Gdy w formularzu wpiszę znacznik html <br> to przekształca to jako czysty tekst wyświetlajać "tekst<br>tekst" oczywiście bez odstępu do nowej linii.
trueblue
Jak ma działać, skoro zamieniasz "<" oraz ">" na htmlowe encje.

EDIT:
Przed htmlspecialchars zamień <br> na \n w stringu:
preg_replace('#<br\s*/?>#i', "\n", $string);
djpotwosss
Więc zrobiłem tak. Kod mam:
  1. $komentarz=preg_replace('#<br\s*/?>#i', "\n", $komentarz);
  2. $komentarz=nl2br(htmlspecialchars(strip_tags(mysql_real_escape_string($_POST["komentarz"]))));


w MYSQL mam widoczny wpis po dodaniu komentarza:
  1. Test
  2. aaa


W Mysql nie ma żadnych znaków <br> ani html. Jest czysty tekst z odstępem(bez <br> oraz bez \n).

I jak widać, dalej nie ma entera..
trueblue
A nie tak?
  1. $komentarz=preg_replace('#<br\s*/?>#i', "\n",$_POST["komentarz"]);
djpotwosss
Niestety nadal tak samo..
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.