Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][MySQL][PHP]Walidacja tablicy json przed dodaniem do bazy danych a real string
drobok
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 12.04.2012

Ostrzeżenie: (0%)
-----


Witam,

Jak za pomocą php, sparsować tablicę json'a, przed jej dodaniem do bazy danych ?

Mam kod, który tworzy mi tablicę. Następnie wysyła ją post do serwera, serwer zapisuje ją do bazy danych w celu późniejszego wykorzystania.
Wszystko jest ok. Lecz pozostaje kwestia możliwości samego wglądu w kod po stronie użytkownika, po czym zmiana danych wysyłanych przez użytkownika na złośliwy kod.
Chciałem do tego użyć real_string'a. Jednak nie potrafię zamienić go z powrotem na stringa do json_decode smile.gif
Go to the top of the page
+Quote Post
maniana
post
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

Ostrzeżenie: (0%)
-----


Po potraktowaniu danych przez mysql_real_escape_string nie wystarczy po odczycie stripslashes?
Go to the top of the page
+Quote Post
drobok
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 12.04.2012

Ostrzeżenie: (0%)
-----


No niestety nie wystarczy. Wywala mi null. Najwyraźniej json ma problem z w/w funkcją.
Coś w ten deseń http://stackoverflow.com/questions/2079711...pslashed-string
Go to the top of the page
+Quote Post
maniana
post
Post #4





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

Ostrzeżenie: (0%)
-----


Znalazłem w necie taką funkcję:
  1. $json_string = mysql_real_escape_string(json_encode(array("Testujemy różne /\ ''znaki/")));
  2. $json_string = unescape($json_string);
  3.  
  4. var_dump(json_decode($json_string));
  5.  
  6. function unescape($string){
  7. $search = array("\\x00", "\\n", "\\r", "\\\x1a");
  8. $replace = array("\x00","\n", "\r", "\x1a");
  9. $retString = str_replace($search, $replace, $string);
  10.  
  11. $search = array("\'", '\\'.'"');
  12. $replace = array( "'", '"',);
  13. $retString = str_replace($search, $replace, $retString);
  14.  
  15. $search = array("\\\\");
  16. $replace = array( "\\");
  17. $retString = str_replace($search, $replace, $retString);
  18.  
  19. return $retString;
  20. }
Go to the top of the page
+Quote Post
drobok
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 12.04.2012

Ostrzeżenie: (0%)
-----


Tx, obie funkcje działają. O błędzie zorientowałem się, gdy druga również zaczęła zwracać null


Ten post edytował drobok 17.04.2012, 16:27:01
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 01:45