хрень
вот так надо:
/**
* Очищает массив от пробелов и слэшей.
*
* @param array
* @return array
*/
private static function clearData(&$in)
{
if ($in && is_array($in)) {
foreach ($in as $key => $value) {
if (is_array($value)) {
self::clearData($in[$key]);
} else {
$value = trim($value);
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
$in[$key] = $value;
}
}
}
return $in;
}
т.е. приходимся рекурсивно по POST (и GET и REQUEST кстати тоже надо) и чистим от пробелов и, если у вас версия php с
магическими кавычками, то от возможных слэшей.
далее, одна из частых ошибок новичков - обрабатывать данные через htmlspecialchars() или её эквивалент как у тебя. хз где этому учат, вероятно есть какая-то секта, не иначе.
ЗАПОМНИТЕ РАЗ И НАВСЕГДА - htmlspecialchars нужен ТОЛЬКО при выводе данных в шаблон. htmlspecialchars нужен что бы символы, являющиеся частью языка HTML преобразовывать в мнемоники, т.е. в эквиваленты, что бы верстка не поехала, когда в ваших данных встретятся символы <>" и '
в базу надо ВСЕГДА записывать данные как есть - что пришло, то и записываем.