我提交的表单中有一个包含url字符串的字段,在表单提交和mysql数据库输入之间会丢失格式

cetgtptt  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(338)

我有一个使用codeigniter框架用php编写的简单表单。表单提交的其中一个字段在表单的http://somedomain.com/web/api/v2.3/offers.json 然后将此字段和表单组中的其他字段插入到mysql数据库表中。
问题是,一旦插入到列字段中,它将丢失所有格式,因此表中的结果如下所示:
httpsomedomaincomwebapiv23提供json
这行代码来自views模块中字段的form类:
这是来自控制器模块的一行代码,该模块将表单数据和包打包到一个数组中,以便模型模块将其转换为sql字符串:
'api\u url'=>$this->cleaninput($this->input->post('api\u uri')),
通过运行一个名为burpsuite的应用程序,它基本上是一个在本地计算机上运行的代理应用程序,我在提交表单之后截获了字符串,据我所见,url的格式/编码如下所示:
api\u uri=http%3a%2f%2fsomedomain.com%2fweb%2fapi%2f2.3%2fjson&submit=
但是,在mysql数据库中检查字段时,条目如下所示:
httpsomedomaincomwebapi23son
因此,在表单提交和插入数据库之间的某个时间,字符串会丢失其url编码。
就像检查一样,我使用mysql comnandline cli在数据库字段中插入了一个url格式的字符串,并且插入的字符串完美地保留了url格式。
任何想法/帮助都将不胜感激

bcs8qyzn

bcs8qyzn1#

我想你已经启用了 global_xss_filtering 在配置中为true,请尝试以下操作

'api_url' => $this->input->post('api_uri', TRUE);

它将自动清除输入

cwxwcias

cwxwcias2#

检查此方法。。。 $data = file_get_contents('php://input'); print_r($data);

相关问题