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 561 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. |
|
|
|
Vasquez21 mysql_real_escape_string oraz cudzysłów dla inputa 30.09.2011, 12:05:44
nospor Zajrzyj sobie w źródło strony i przyjrzyj się jak ... 30.09.2011, 12:06:31
Vasquez21 dzięki wielkie za naprowadzenie, ale nadal nie wie... 30.09.2011, 12:13:53 
armon Cytat(Vasquez21 @ 30.09.2011, 13:13:5... 30.09.2011, 12:41:37
nospor htmlspecialchars() 30.09.2011, 12:14:27
nospor Armon a jak się mają tagi do omawianego tu problem... 30.09.2011, 12:56:14 
armon Cytat(nospor @ 30.09.2011, 13:56:14 )... 30.09.2011, 13:29:05
nospor CytatNie wiem co będzie przyjmował jego input?Prze... 30.09.2011, 13:35:38 
armon Cytat(nospor @ 30.09.2011, 14:35:38 )... 30.09.2011, 13:39:53
nospor Nie i jeszcze raz nie.
Nie kumasz co do Ciebie mów... 30.09.2011, 14:12:02 
armon Cytat(nospor @ 30.09.2011, 15:12:02 )... 30.09.2011, 14:37:44
nospor Cytatskoro jest to niedozwolony znak to po co go t... 30.09.2011, 14:43:21 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 07:42 |