Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] nl2br, mysql_real_escape_string, strip_tags, jak to połączyć?
in5ane
post
Post #1





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Witam, jak mam zrobić, żeby działały mi funkcje zabezpieczające, ale tekst był również z enterami? Poniżej mój kod:
  1. <?php
  2. $tresc_dowcipu = $_POST['tresc_dowcipu'];
  3. $tresc_dowcipu = nl2br(mysql_real_escape_string(strip_tags($tresc_dowcipu)));
  4. ?>

Prawdopodobnie gryzą się, gdyż po wyświetleniu jest bez enterów.
P.S.: W bazie jest jednak jakby z enterami (w phpMyAdmin), to może wina jednak leży w czymś innym?

Z góry dziękuje za pomoc.
Powód edycji: literówka w bbcode ;)


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
mecenas
post
Post #2





Grupa: Zarejestrowani
Postów: 80
Pomógł: 5
Dołączył: 23.09.2008
Skąd: Chełmno/Toruń

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


nie wiem czy to istotne, ale ja to robię zawsze odwrotnie (tj. mysql_real_escape_string(nl2br($string))) i dotychczas nie miałem problemów smile.gif wiem, że to może być nieistotne, ale... może akurat być? php to dziwna język winksmiley.jpg mysql tez dziwna baza winksmiley.jpg


--------------------
-- http://rafaljakubowski.net76.net --
google's my life ;)
Go to the top of the page
+Quote Post
nexis
post
Post #3





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


  1. <?php
  2. $tresc_dowcipu = $_POST['tresc_dowcipu'];
  3. $tresc_dowcipu = strip_tags($tresc_dowcipu);
  4. $tresc_dowcipu = nl2br($tresc_dowcipu, true);
  5. $tresc_dowcipu = mysql_real_escape_string($tresc_dowcipu);
  6. ?>


Ten post edytował nexis 23.01.2009, 21:55:46


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
bartg
post
Post #4





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

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


Dodam, ze lepiej jest nl2br dac jak ściągasz dane smile.gif


--------------------
Go to the top of the page
+Quote Post
legorek
post
Post #5





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

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


Cytat(bartg @ 23.01.2009, 22:16:53 ) *
Dodam, ze lepiej jest nl2br dac jak ściągasz dane smile.gif

Tak i przy każdym wyświetleniu strony przez użytkownika ta funkcja będzie wywoływana, zamiast tylko raz przy dodawaniu danych. Bez sensu. Może nl2br nie jest jakąś bardzo zasobożerną funkcją, ale warto mieć dobre nawyki.

Ten post edytował legorek 23.01.2009, 22:31:57


--------------------
Go to the top of the page
+Quote Post
in5ane
post
Post #6





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Cytat(nexis @ 23.01.2009, 21:54:49 ) *
  1. <?php
  2. $tresc_dowcipu = $_POST['tresc_dowcipu'];
  3. $tresc_dowcipu = strip_tags($tresc_dowcipu);
  4. $tresc_dowcipu = nl2br($tresc_dowcipu, true);
  5. $tresc_dowcipu = mysql_real_escape_string($tresc_dowcipu);
  6. ?>


Warning: Wrong parameter count for nl2br() in /home/kondom/domains/dancepiotrkow.pl/public_html/dowcipy.php on line 111

111 linia to ta z nl2br.., więc jak mam rozwiązać ten problem?


@edit:
Dziękuję bardzo za pomoc, wystarczyło usunąć true.

Ten post edytował in5ane 23.01.2009, 23:23:37


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
legorek
post
Post #7





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

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


Drugi parametr dla nl2br jest dostępny od PHP 5.3.0.


--------------------
Go to the top of the page
+Quote Post
Pilsener
post
Post #8





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


1. Zanim użyjesz mysql_real_escape_string sprawdź, czy serwer nie dodaje sleszy automatycznie
2. Zamiana znaków nowej linii i wycinanie kodu html powinno zależeć od elementu tablicy, z której pobierasz te dane - napisz prostą klasę/funkcję walidującą, która będzie walidowała dane w zależności od podanych parametrów (typu czy jest to textarea, czy trzeba wyciąć html i czy należy zamienić znaki nowej linii na <br /> etc.)

Nie ma jednej, uniwersalnej recepty na walidację - musisz używać tego, co w danym momencie jest potrzebne. O logicznej kolejności (typu najpierw zamiana nowej linii na <br />, a później wycięcie tagów html) chyba nie musimy pisać?
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 Aktualny czas: 19.08.2025 - 09:07