$mgmac = $this->input->post("mgmac");
数据获得标签空间。但是codeigniter会删除它。如何允许标签字符。
我弄错了
$config['global_xss_filtering'] = FALSE;
试过这个
$mgmac = $this->input->post("mgmac",FALSE);
我做了
$str = str_replace("\t", ' ', $str);
进入system\core\Security.php
的评论行。
但请继续删除数据中的制表符。
答案 0 :(得分:0)
CodeIgniter中没有任何内容可以删除水平制表符。它必须是别的东西。以下面的代码为例。这是我放入Test控制器的一种方法,你可以简单地复制并粘贴它,看看一旦发布,mgmac
的值仍然有选项卡。
我还提供了一张图片,在点击提交按钮后显示结果。
您可以通过打开system / core / Input.php文件来实际跟踪$ _POST数据的内容。 Input类的构造函数调用_sanitize_globals()
,在您发布的值上调用_clean_input_data()
。调用remove_invisible_characters
来删除大多数不可见的字符,但水平制表符不是其中之一。稍后,当您致电post()
时,_fetch_from_array()
方法会检索您要求的发布数据。如果xss_clean
的第二个参数设置为TRUE,则post()
将运行,但在您的情况下,应该不更改地返回mgmac的值。
/**
* This method is in my Test.php controller. I am using mod_rewrite to
* remove the index.php from the URL.
*/
public function tab_in_post()
{
$val = "1\t2\t3\t4";
echo '<form method="post" action="/test/tab_in_post">
<input type="text" value="' . $val . '" name="mgmac" />
<button type="submit">Submit</button>
</form>';
echo '<pre>';
var_dump( $this->input->post('mgmac', FALSE) );
echo '</pre>';
}
// -----------------------------------------------------------------------