![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 0 Dołączył: 2.11.2004 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Ostatnio troszkę przerabiałem sobie operacje na bazie i pododawałem przed wrzuceniem wartości do bazy mysql_real_escape_string. Wszystko jest ok do chwili kiedy chcę podstawić do value w input jakąś wartość z cudzysłowem. Owa wartość jest obcinana. Kiedy normalnie wyświetlam wartość pojawia się wszystko poprawnie. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No nie, teraz już źle gadasz.
raz że mysql_escape_string nie powoduje zapisania do bazy slashy. Dzieję się tak tylko wtedy, gdy juz przeslashujesz tekst, który przepuszczasz przez mysql_escape_string, ale to nie jest wina tej funkcji ale już twoja. dwa, że mysql_escape_string używamy, gdy wkładamy dane do bazy, zaś funkcje filtrujące typu htmlspiecialchars używa się raczej przed wyświetleniem użytkownikowi. Jeśli ty mieszasz jedno z drugim, to nic dziwnego, że do bazy wpadają ci nadmiarowe slashe. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 24.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
No nie, teraz już źle gadasz. raz że mysql_escape_string nie powoduje zapisania do bazy slashy. Dzieję się tak tylko wtedy, gdy juz przeslashujesz tekst, który przepuszczasz przez mysql_escape_string, ale to nie jest wina tej funkcji ale już twoja. dwa, że mysql_escape_string używamy, gdy wkładamy dane do bazy, zaś funkcje filtrujące typu htmlspiecialchars używa się raczej przed wyświetleniem użytkownikowi. Jeśli ty mieszasz jedno z drugim, to nic dziwnego, że do bazy wpadają ci nadmiarowe slashe. I z tego względu musisz napisać kod, lub też ogólną funkcję np. gdy tworzysz CMS (a po co? po to, żeby roboty sobie dokładać?): O sorry, ale chyba zapomniałeś o tym, że każdą daną możesz później wyświetlić np. login "Witaj $login", więc jeśli pozwolisz zapisać do bazy danych kod html, to później ktoś będzie formatował w ten sposób np. wygląd lub też może nawet wywołać jakąś funkcje, czy też skrypt JS. filter_var załatwia sprawę od razu, nie musisz kombinować i zabezpiecza przed atakiem SQL injection i pozwala zapisywać wszelkie znaki bo i tak są zamieniane na encje HTML. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 00:33 |