Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: htmlspecialchars(); - jak wtedy odstępy zrobić?
Forum PHP.pl > Forum > PHP
SN@JPER^
Witam,

mam problem, otóż wysyłam jakiś tekst poprzez formularz:



Odczytuję dane filtrując je..., więc htmlspecialchars(); pozbawia tekst HTML, w takim razie zamiana /n na <br /> nic nie daje. Jest może jakis inny sposób na uzyskanie odstepów?:

Piniek
  1. <?php
  2. ?>
carbolymer
Ale! nl2br() musisz wywołać po htmlspecialchars();
SN@JPER^
Dzieki wielkie Chłopaki!
marcio
Jak nie mozesz uzyc str_replace()
  1. <?php
  2. $tekst = str_replace('\n\t', '<Br>', $tekst);
  3. ?>
SN@JPER^
Cytat(marcio @ 16.03.2008, 17:20:45 ) *
Jak nie mozesz uzyc str_replace()
  1. <?php
  2. $tekst = str_replace('\n\t', '<Br>', $tekst);
  3. ?>


Ale ja używam htmlspecialchars();, który "ignoruje" kod html...
marcio
Tez uzywam.....przy wyswietlaniu tekstu i dziala...dziwne....
SN@JPER^
Wieczorem sprawdzę...
matix
Wszystko zależy od kolejności.

  1. <?php
  2. $content = nl2br(htmlspecialchars($content));?>


a

  1. <?php
  2. $content = htmlspecialchars(nl2br($content));?>


Daje inne rezultaty.

To samo dotyczy preg_replace i wszystkich innych funkcji.
marcio
Aha tego nie widzialem to jest jakas roznica przy zabezpieczniach robia tak
  1. <?php
  2. ?>

A miedzy tym
  1. <?php
  2. ?>

questionmark.gif?
Piniek
tak poniewaz
  1. <?php
  2. ?>

najpierw dodaje ukosniki przed niebezpiecznymi znakami a potem koduje znaki typu < lub > lub jeszcze inne na encje tych znaków

a to
  1. <?php
  2. ?>

odwrotnie najpierw koduje znaki typu < lub > na encje tycxh znakow a potem dodaje slesze(ale spolszczylem) ;P

a aporpo tematu to jak najpierw dodanym
Kod
br
za entery a potem zakodujemy to funkcja htmlspecialcharcters() to ta funkcja zakoduje rowniez znaki br ktore dopiero co zostaly wstawione winksmiley.jpg


Pozdrawiam winksmiley.jpg
crackcomm
Kod
$text = htmlspecialchars($text);
$text = nl2br($text);

powinno sie dac...
marcio
@Piniek czyli nie ma roznicy..questionmark.gif

@crackcomm masz niepotrzebnie ' w nl2br() smile.gif
Piniek
w bezpieczenstwie pewnie nie bo i tak kodujesz to dwa razy ale w tym co sie wyswietli jest roznica winksmiley.jpg
crackcomm
Cytat(marcio @ 16.03.2008, 20:19:19 ) *
@crackcomm masz niepotrzebnie ' w nl2br() smile.gif

dzieki juz poprawiam tongue.gif
Kayne
A nie można użyć funkcji strip_tags() ?
Piniek
mozna ale nie o to pytal autor tematu winksmiley.jpg
Kayne
Tak prawda, ale można przecież użyć strip_tags() i nie będzie wtedy problemu z nowymi liniami, prawda? smile.gif
crackcomm
nom i wtedy uzyc nl2br();
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.