我有一个带有输入字段的表单,可以接受网址。
一切正常,直到有人尝试使用网址编码元素提交网址。网址看起来像那样
http://example.com/a=xx&b=%23yy
我收到此字符串为http://example.com/a=xx&b=#yy
即使在进行任何表单验证之前,$this->input->post('url')
也会对网址编码元素进行解码。我需要完全按照输入的方式接收它。
我尝试使用常规和多部分形式。
知道造成这种情况的原因是什么?
答案 0 :(得分:0)
您是否在application / config.php中将XSS过滤全局置于TRUE?
$config['global_xss_filtering'] = TRUE;
如果是这样,您可以通过设置可选参数来禁用过滤:
$this->input->post('url', FALSE)
还要检查application / config.php中的“允许的URL字符”是否合理。
我也会使用URLEncode /解码客户端和服务器端。
答案 1 :(得分:0)
也许CodeIgniter的输入类有一些神奇之处。尝试直接print_r你的$ _POST。那个网址在那里不受影响吗?