Ned-Yoshi
19.07.2005, 13:43:41
Na forum nie doszukałem się na razie żadnego rozwiązania tego problemu więc postanowiłem go przedstawić.
Problem jest następujący: jak zrobić, by z wczytywanych z bay dancyh komentarzy usuwane były tagi html. O tym problemie uświadomilem sobie, gdy jeden z moich kolegów wkleił mi w komentarz kod alertu jakiegoś... podobnie mozna wstawić jakiś wielki rysunek rozbijając stronkę.
Istnieją więc dwa sposoby rozwiązania tego problemu:
1. Żeby wczytywał komentarze doslownie, tzn. tagi html byly widoczne w przeglądarce i nie byly wykonywane.
2. Usunąć te tagi (ciąg między '<' a '>' z tymi znakami włącznie), ale to skolei może spowodować zamieszanie w przypadku gdy ktoś przez przypadek da jeden z tych znaków.
Pierwsze rozwiązanie jest chyba stosowane w witrynach wykorzystujących bbCode (od razu mówię, że ja nie potrzebuję możliwości formatowania tekstu komentarzy), ale nie mam pojecia jak wygląda ta funkcja. Czy może ktoś pomóc?
nospor
19.07.2005, 13:46:22
wolguy
19.07.2005, 17:16:43
do tej zmiennej gdzie masz przechowywaną zawartość komentarzy proponuję użyć czegoś takiego:
$tresc = str_replace("&", "&", $tresc);
$tresc = str_replace("<", "<", $tresc);
$tresc = str_replace(">", ">", $tresc);
$tresc = str_replace("\r\n", "<br>", $tresc);
Ociu
19.07.2005, 17:52:19
Cytat(wolguy @ 2005-07-19 18:16:43)
$tresc = str_replace("\r\n", "<br>", $tresc);
nl2br" title="Zobacz w manualu PHP" target="_manual
Pedros
23.07.2005, 15:42:21
Witam...
Mam problem zachaczający o to samo...
Również chodzi o dodawanie komentarzy(oraz cmsa). Różnica jest taką, że zależy mi również na zamianie & na &
Zastanawiam się co jest lepszym rozwiązaniem... zamiana podczas wczytywania z bazy danych, czy też przy zapisywaniu do bazy.
Wydaje się, iż najlepszym rozwiązaniem jest htmlspecialchars lub htmlentities, ale....
gdy sam wpiszę &, to funkcja zamienia mi to na &amp;
Proszę o wskazówkę w jaki sposób najlepiej to rozwiązać...
Kinool
23.07.2005, 15:52:13
ja uzywam
htmlspecialchars" title="Zobacz w manualu PHP" target="_manual co do stosowanie to przed zapisem do bazy bo robisz to raz a nie 1000 razy przy kazdym wejsciu na strone
Pedros
23.07.2005, 16:27:25
no ok... też mi się wydaje, że tak lepiej...
ale radzisz sobie jakoś z &amp;

?
bo liczenie na to, że w polu textarea nikt nie wpisze(lub ja nie zapomnę) & jest lekko idiotyczne...
wydaje się, iż kombinacja
html_entity_decode i