Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zapis i odczyt kodu HTML do i z bazy
Forum PHP.pl > Forum > Przedszkole
Malinaa
Witam,
potrzebuję umożliwić użytkownikom zapis kodu HTML do bazy,
i następnie jego odczyt na stronie.

Jak to zrobić dobrze i bezpiecznie?

Zacząłem tak:

  1. function Zapis($tekst) {
  2. $tekst = mysql_real_escape_string($tekst);
  3. $tekst = htmlspecialchars($tekst, ENT_QUOTES);
  4. $tekst = trim($tekst);
  5. return $tekst;
  6. }
  7.  
  8. function Odczyt($tekst) {
  9. $tekst = stripslashes($tekst);
  10. return $tekst;
  11. }


Zapis chyba mogłby być, ale odczyt?
Jak odczytać zamienione przez htmlspecialchars{} znaczniki
i jak zabezpieczyć się jeśli będzie w kodzie np:
<script type="text/javascript">
// do it
</script>
nospor
Po grzyba dajesz htmlspecialchars skoro chcesz pozwalac na html?
Jak chcesz zabezpieczyc kod przez złym kodem html to zainteresuj się klasą HTMLPurifier
Mackos
No i może pdo w zapytaniach do bazy smile.gif
nospor
A jak to się ma do pytania o html w bazie? Równie dobrze napisz jeszcze byż używał dobrego monitora i podkładki pod mysz

edit: specjalnie dla Malinaa:
ten post jest odpowiedzią na post Mackosa (który notabene jest nad moim postem) o treści:
"No i może pdo w zapytaniach do bazy"
Malinaa
nie chcę pdo, ale własne funkcje
nospor
PDO w niczym nie rozwiązuje kwestii HTML w bazie, wiec czy bedziesz mial PDO czy wlasne funkcje to nie ma żadnego wpływu na problem jaki tu zadałes. A odpowiedz dostałeś notabene w pierwszym poście
Malinaa
Cytat(nospor @ 13.10.2011, 11:00:24 ) *
A jak to się ma do pytania o html w bazie?


Albo nie rozumię Twojej odpowiedzi, albo nie rozumiesz mojego pytania.
Coś jest nie jasne w pytaniu?
nospor
@Malinaa weź przeczytaj cały temat od początku do konca. Cytowany przez ciebie tekst nie jest moim pierwszym postem o którym pisałem. Pierwszy post mojego autorstawa jest zaraz za twoim postem rozpoczynającym temat....
Tekst co zacytowałeś odnośił się do bezsensowego posta Mackosa. Nie umiesz rozróżniać postów w wątku?
Mackos
No masz racje, nie czytam ze zrozumieniem ;P i wypisuje głupoty, już się nie odzywam - ide na kawe biggrin.gif
Malinaa
oki, ślepota komputerowa notabene przeoczylem
nospor
Nie dość, że ślepy to jeszcze się naśmiewa z mojego notabene.... gdzie ten guzik od warnów.... a tu mam... +100% wink.gif
@mackos, bo obydwaj się na "Ma" zaczynacie to się można pomylić wink.gif
Malinaa
so good, give me your hand, więc co z moimi funkcjami?
nospor
Przecież ci napisałem w moim pierwszym poście. Nadal go nie widzisz? Dobrze, zacytuje ci go jeszcze raz...
Cytat
Po grzyba dajesz htmlspecialchars skoro chcesz pozwalac na html?
Jak chcesz zabezpieczyc kod przez złym kodem html to zainteresuj się klasą HTMLPurifier
Malinaa
Nie po grzyba, htmlspecialchars() zamienia nie tylko znaczniki, ale i cudzyslowia, apostrofy itp., których nie chcialbym w bazie.
Chyba dobrze jest kiedy w bazie mamy np. &quot; zamiast " .
Pytanie jest czy dobrze mieć w bazie np: $lt;table$gt; , czy <table>
i jak pozbyć się nie chcianego kodu typu <script>
nospor
Cytat
Chyba dobrze jest kiedy w bazie mamy np. &quot; zamiast " .
Nie, bo to jest bez sensu. Cudzysłów to cudzysłów i nie ma najmniejszego sensu go zamieniać przed zapisem do bazy na encję :/

Cytat
Pytanie jest czy dobrze mieć w bazie np: $lt;table$gt; , czy <table>
Jak wyżej. W czym ci przeszkadza w bazie zapis <table>? Bo mi w niczym.

Cytat
i jak pozbyć się nie chcianego kodu typu <script>
Przecież ci napisałem raz, potem cytowałem drugi raz!!!!!!!!!
HTMLPurifier
A jesli to rozwiązanie cię nie interesuje to napisz to z łaski swojej to już ci nie bedę 4 liter zawracał.
Malinaa
Ok, zastanawiało mnie &quot; i " , gdzieś widziałem że znak " był zamieniany na &quot; ale zapewne przy odczycie z bazy znaku " i kiedy HTML był zabroniony. I nadal bym nad tym myślał, ale skoro jest to bez sensu, to uratowałeś moje 4 litery smile.gif
Co do HTMLPurifier to jest monstrum, a ja chciałbym funkcyjkę z mini ochroną (przed nie chcianym kodem, js... i może coś tam jeszcze).
Dziękuje za informacje.
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.