• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed PHP i SQL - wyświetlanie/przetwarzanie odpowiednich znaków [BBcode]

Object Storage Arubacloud
0 głosów
174 wizyt
pytanie zadane 10 lutego 2018 w PHP przez shy_fox Gaduła (4,320 p.)
zamknięte 6 marca 2018 przez shy_fox
To tak, już zrobiłem: w ustawieniach zapisuje się tekst do profilu, znaki są zamieniane na encje i wsadzane do bazy aby uniknąć wstrzykiwania

Co chce zrobić: z bazy wyciągnąć zapisany z encjami tekst i cofnąć operacje encji [htmlentities()] a później, aby przeglądarka w tym tekscie wyświetlała wybrane fragmenty BBcode np. [b] bold [/b] a [size] juz nie.

 

Pomysł na rozwiązanie:

Po zapisaniu tekstu z encjami w bazie dać UPDATE zamieniające encje np. &lsqb na [ tylko jeśli między nimi jest jest np. tag B czyli %&lsqbB&rsqb%    jeśli ta metoda jest dobra, to jak złożyć zapytanie UPDATE aby zamienić tylko wybrany kawałek tekstu?

 

Lecz liczę na wasze inne rozwiązania, z góry dziękuje
komentarz zamknięcia: Udzielono odpowiedzi

2 odpowiedzi

0 głosów
odpowiedź 12 lutego 2018 przez Hysek Obywatel (1,250 p.)
edycja 12 lutego 2018 przez Hysek
$zmienna = 'ciąg znaków + + +';
str_replace("+","plus",$zmienna); //- w tym przypadku znak "+" zostanie zastąpiony wyrazem "plus"

 

str_replace() - wyrażenie regularne służy do zamiany, podmiany ciągu znaków wyrazów.

 

To znaczy teraz pobierasz zmienna przesłana od użytkownika filtrujesz i tak dalej.. i przed zapisem do bazy zapisujesz tak jak ma być

$zmienna = $_POST['zmienna']; // uznajmy ze juz zostalo przefiltrowane
str_replace("&lsqb","[",$zmienna);

i analogicznie dla drugiego "]" - (nawiasu) tak samo

 

0 głosów
odpowiedź 12 lutego 2018 przez Comandeer Guru (601,510 p.)

Zamiana HTML na encje NIE CHRONI W ŻADEN SPOSÓB PRZED SQL INJECTION. Jedyna sensowna obrona to prepared statements. Kropka.

Z tego też powodu zapisywanie encji do bazy jest nieefektywne i o wiele wygodniej jest zapisać czysty HTML, a dopiero przy wyświetlaniu go odpowiednio przerobić.

Co do BBCode: nie myślałeś nad wykorzystaniem gotowego parsera?

Podobne pytania

0 głosów
1 odpowiedź 353 wizyt
pytanie zadane 13 marca 2018 w PHP przez MiguelSantos Początkujący (270 p.)
0 głosów
1 odpowiedź 147 wizyt
pytanie zadane 18 stycznia 2019 w Java przez inf Nowicjusz (120 p.)
0 głosów
1 odpowiedź 178 wizyt
pytanie zadane 8 grudnia 2018 w C# przez DrajzleR Obywatel (1,380 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...