Codeigniter表单POST在控制器从视图中为空 - php

我正在与Codeigniter合作。我创建了一个HTML表单,该表单将数据发布到Controller。

该表格运行正常,但突然停止发布数据。

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>

我试图检查浏览器中的数据发布,它显示了我在输入框中输入的数据。

Codeigniter表单POST在控制器从视图中为空 - php

在我的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; 

结果:

CONTENT_TYPE:application / x-www-form-urlencoded

字符串'order1 = 26&item1 ='

数组(大小= 23)
'order1'=>字符串'26'(长度= 2)
'item1'=>字符串''(长度= 0)

但是当我在控制器中打印$ _POST时,我得到以下信息:

Array
(
    [order1] => 
    [item1] =>
)

我的.htaccess代码如下:

RewriteEngine on

RewriteCond $1 !^(index\\.php|resources|robots\\.txt)

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L,QSA]

有人可以告诉我这是什么问题吗?我无法找出为什么当数据传递到控制器时它变为空。该应用程序已成功运行了一年多,但突然出现了这个问题。

先感谢您。请让我知道您是否还需要其他帮助。

注意:我发现页面加载后,如果我将输入的名称编辑为其他名称,则数据将成功发布。

即:代替order1,如果我使用Chrome中的inspect元素将我的编辑名称更改为“ neworder”,那么如果我提交,则数据将带有值提交给控制器。不知道为什么

更新:我发现有些奇怪。在浏览器的set-cookie中。这就像一整页的垃圾。

每次调用该页面时,我都会启动一个新会话,但不会终止现有会话。那是问题吗?

即使我破坏了旧的会话并开始新的会话,我在浏览器中也得到了set-cookies。它对我来说有一个..但是在我的情况下,我在浏览器中得到了6个以上的cookie。

参考方案

根据此CI github发布问题https://github.com/bcit-ci/CodeIgniter/issues/242,RewriteRule可能是.htaccess问题:

如果使用Apache服务器,则应启用mod rewrite,否则
重定向将是正确的,但$ _POST为空。

如果您的网址上没有斜杠,服务器将发送一个
301重定向将干扰POST数据。

你的问题可能是

RewriteRule ^(.*)$ index.php/$1 [L,QSA]

尝试更改为:

RewriteRule ^(.*)$ index.php/$1 [PT,L]

(来自:not able get post form submit values in codeigniter)或尝试设置:

sudo a2enmod rewrite

希望能帮助到你!

PHP Count数组元素 - php

嗨,有人可以解释为什么这会返回“数组由0个元素组成”。 :$arr = array(1,3,5); $count = count($arr); if ($count = 0) { echo "An array is empty."; } else { echo "An array has $count elements.…

PHP:从函数返回值并直接回显它? - php

这可能是一个愚蠢的问题,但是……的PHPfunction get_info() { $something = "test"; return $something; } html<div class="test"><?php echo get_info(); ?></div> 有没有办…

PHP:将数据从二维数组复制到一维数组的最快方法 - php

我有一个巨大的二维PHP数组,带有500万行。$t = [ [ "id" => 1, "name" => "foo" ], [ "id" => 2, "name" => "bar" ] ]; 现在,我必须将此数组的I…

php-printf和sprintf具有不同的输出 - php

我编写了以下微型php程序来测试printf和sprintf:<?php $str_1 = printf("%x%x%x", 65, 127, 245); $str_2 = sprintf("%x%x%x", 65, 127, 245); echo $str_1 . "\n"; echo $s…

PHP-解析当前URL - php

在以下两种情况下,我都需要解析当前网址:http://mydomain.com/abc/ http://www.mydomain.com/abc/ 我可以获得“ abc”的返回值(或该位置的任何文本)。我怎样才能做到这一点? 参考方案 您可以使用parse_url();$url = 'http://www.mydomain.com/abc/…