note 20034 modified in function.serialize by aidan

From: Date: Thu, 24 Jun 2004 10:19:24 +0000
Subject: note 20034 modified in function.serialize by aidan
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-71578@lists.php.net to get a copy of this message
If you want to put serialized data into DB, you have to add slashes. At this point, there's a problem. If you got data via HTTP POST method, the data has slashes already. I tried to work with "array_walk" or "array_map", but it doesn't work when the data has array. So make extended stripslashes function. <?php function my_stripslashes($vals) { if (is_array($vals)) { foreach ($vals as $key=>$val) { $vals[$key]=my_stripslashes($val); } } else { $vals = stripslashes($vals); } return $vals; } $data = addslashes(serialize($_POST)); ... $SQL="insert into DB() values($data)"; ... $SQL="select data from DB"; ... $data = my_stripslashes($data); ... ?> --was-- If you want to put serialized data into DB, you have to add slashes. At this point, there's a problem. If you got data via HTTP POST method, the data has slashes already. I tried to work with "array_walk" or "array_map", but it doesn't work when the data has array. So make extended stripslashes function. function my_stripslashes($vals) { if (is_array($vals)) { foreach ($vals as $key=>$val) { $vals[$key]=my_stripslashes($val); } } else { $vals = stripslashes($vals); } return $vals; } $data = addslashes(serialize($_POST)); ... $SQL="insert into DB() values($data)"; ... $SQL="select data from DB"; ... $data = my_stripslashes($data); ... http://php.net/manual/en/function.serialize.php

« previous php.notes (#71578) next »