We have a small competition in my town where we need to store localstorage keys into MySQL using Ajax.
By doing this project, I found few problems.
This is my localstorage key and value:
Key: BM
Value:
[{"id":"item-1","icon":"google.com"},
{"id":"item-3","icon":"tumblr.com"},
{"id":"item-5","icon":"youtube.com"}]
So basically its id: ID, icon: URL and both can be random.
When I store this into MySQL using Ajax, the value changes to:
[{\"id\":\"item-1\",\"icon\":\"google.com\"},
{\"id\":\"item-3\",\"icon\":\"tumblr.com\"},
{\"id\":\"item-5\",\"icon\":\"youtube.com\"}]
The structure of that row is longtext. I've tried plain text but is the same.
Id like to hear other thoughts from more experienced developers how would you do it.
The localstorage value added and parsed with JSON.
解决方案
Looks like php is adding slashes to your input before you insert your data. This could be caused by magicquotes. Have a look at: http://php.net/manual/en/security.magicquotes.php
If this is the case, the solution is to either turn off magicquotes in php or to use stripslashes()
// Assuming your input is in the input variable
$input = stripslashes($_GET['input']);
mysql_query("insert into `table` ( `columnname` ) values( '" . mysql_real_escape_string($input) . "' )");
?>