Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Filtrowanie danych w PHP
djpotwosss
post 4.04.2014, 17:41:07
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.12.2008

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


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
Go to the top of the page
+Quote Post
trueblue
post 4.04.2014, 17:44:26
Post #2





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

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


http://pl1.php.net/strip_tags
Drugi argument.


--------------------
Go to the top of the page
+Quote Post
djpotwosss
post 4.04.2014, 18:14:08
Post #3





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.12.2008

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


To w takim razie jak to zastosować by wszystko inne filtrowało oprócz <br> >
Go to the top of the page
+Quote Post
trueblue
post 4.04.2014, 18:25:00
Post #4





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

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


Skoro allowed_tags oznacza dozwolone tagi, to:
strip_tags($string,"<br><br/>");


--------------------
Go to the top of the page
+Quote Post
djpotwosss
post 4.04.2014, 18:42:05
Post #5





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.12.2008

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


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
Go to the top of the page
+Quote Post
trueblue
post 4.04.2014, 18:44:45
Post #6





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

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


Ale gdzie jest blokowany enter, w trakcie wpisywania w polu textarea?


--------------------
Go to the top of the page
+Quote Post
djpotwosss
post 4.04.2014, 19:08:54
Post #7





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.12.2008

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


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.
Go to the top of the page
+Quote Post
trueblue
post 4.04.2014, 19:12:36
Post #8





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

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


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);

Ten post edytował trueblue 4.04.2014, 19:16:14


--------------------
Go to the top of the page
+Quote Post
djpotwosss
post 5.04.2014, 14:59:56
Post #9





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.12.2008

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


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..
Go to the top of the page
+Quote Post
trueblue
post 5.04.2014, 15:08:07
Post #10





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

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


A nie tak?
  1. $komentarz=preg_replace('#<br\s*/?>#i', "\n",$_POST["komentarz"]);


--------------------
Go to the top of the page
+Quote Post
djpotwosss
post 5.04.2014, 15:17:01
Post #11





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.12.2008

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


Niestety nadal tak samo..
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 00:35