我创建一个表单,从用户那里接收一些信息,并将其发送到我的服务器并通过查询发送保存在数据库中。 我的问题是,当用户输入'&'字符,然后代码不能正常工作。
查询
"UPDATE artist_portfolio SET Biography = '".(UsefulHelper::mysql_escape($data['Biography']))."',Profile = '".(UsefulHelper::mysql_escape($data['Profile']))."',Name = '".(UsefulHelper::mysql_escape($data['Name']))."' WHERE Artist_id = '".(UsefulHelper::mysql_escape($id))."'"
和UsefulHelper :: mysql_escape($ inp)
public static function mysql_escape($inp)
{
$inp = mb_convert_encoding($inp,'UTF-8');
if(is_array($inp)) return array_map(__METHOD__, $inp);
if(!empty($inp) && is_string($inp)) {
return str_replace(array('\\', "\0", "\n", "\r", "'", '"', "\x1a",'&'), array('\\\\', '\\0', '\\n', '\\r', "\\'", '\\"', '\\Z','&'), $inp);
}
return $inp;
}
如果用户输入包含'&'的字符串,则服务器仅识别'&'之前的字符。
例如,' 1234& dddd' => ' 1234'
另一个问题是......有很多这样的代码。所以我只需要修改UsefulHelper :: mysql_escape函数..
请帮帮我。这个问题让我很生气。