php'&'角色造成严重问题

时间:2016-07-18 17:49:10

标签: php database

我创建一个表单,从用户那里接收一些信息,并将其发送到我的服务器并通过查询发送保存在数据库中。 我的问题是,当用户输入'&'字符,然后代码不能正常工作。

查询

"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函数..

请帮帮我。这个问题让我很生气。

0 个答案:

没有答案