我正在使用Codeigniter。我创建了一个HTML表单,将数据发送到控制器。
这个表单之前可以正常工作,但是突然间就停止把数据发送到控制器了。
HTML:
<form name="frm_search" id="frm_search" method="post" action="http://ip/free/index.php/taskdetails/tabOne/1/ShibNo/asc/">
<input id="order1" name="order1" value="26" type="text" >
<input id="item1" name="item1" value="" type="text" >
</form>
- 我尝试在浏览器中检查数据发布情况,它显示了我在输入框中输入的数据。
- 在我的index.php文件中,我放置了以下代码以查看是否已发布:
echo "CONTENT_TYPE: " . $_SERVER['CONTENT_TYPE'] . ""; $data = file_get_contents('php://input'); echo "DATA: <pre>"; var_dump($data); var_dump($_POST); echo "</pre>"; exit;
RESULT:
CONTENT_TYPE: application/x-www-form-urlencoded
string 'order1=26&item1='
array (size=23)
'order1' => string '26' (length=2)
'item1' => string '' (length=0)但是在控制器中打印$_POST时,我会得到以下结果:
3. 我的.htaccess代码如下:
Array ( [order1] => [item1] => )
有人能告诉我问题出在哪里吗?为什么当数据传递到控制器时,它变成了null。应用程序成功运行了一年多,但突然出现了这个问题。RewriteEngine on RewriteCond $1 !^(index\\.php|resources|robots\\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
提前感谢您的帮助。如果需要更多信息,请告诉我。
注意:我发现一旦页面加载完成,如果我通过Chrome的检查元素编辑输入名称为其他名称,则数据会成功提交。
即:如果我将名称从order1更改为neworder,则提交时数据将提交给控制器。不知道为什么?
更新:我发现有一些奇怪的东西。在浏览器的set-cookie中,它就像是一整页的垃圾。
每次调用页面时,我都会启动一个新会话,但我不会终止现有会话。这是个问题吗?
即使我销毁旧会话并启动新会话,我也会在浏览器中获得set-cookies。它必须是一个...但在我的情况下,浏览器中有6个以上的set cookies。
$('#order1').val('');
或类似的代码? - MonkeyZeus$this->output->enable_profiler(TRUE);
以启用分析器。 - Gentle153$_POST
数组,而CodeIgniter默认情况下不会这样做。显然我们无法审查您数千行的代码,但我们也不能盲目猜测原因... - Narf