Подтвердить что ты не робот

Codeigniter form POST Empty in Controller from View

Я работаю с 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>
  1. Я попытался проверить запись данных в браузере, и она показывает данные, которые я ввел в поле ввода.

enter image description here

  1. В My 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

string 'order1=26&item1='

array (size=23)
'order1' => string '26' (length=2)
'item1' => string '' (length=0)

Но когда я печатаю $ _POST в контроллере, я получаю следующее:

Array
(
    [order1] => 
    [item1] =>
)
  1. Мой код .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 на "neworder", то, если я отправляю, данные отправляются со значением в контроллер. Не знаю почему?

Обновление: Я нашел это странным. В наборе-cookie браузера. Это как полная страница барахла.

Каждый раз, когда вызывается страница, я начинаю новый сеанс, но не убиваю существующий сеанс. Это проблема?

Даже если я уничтожу старую сессию и начну новую, я получу e-set cookie в браузере. У меня есть один.. но в моем случае я получаю более 6 установленных файлов cookie в браузере.

4b9b3361

Ответ 1

Это может быть проблема с .htaccess с RewriteRule, в соответствии с этой проблемой CI github post https://github.com/bcit-ci/CodeIgniter/issues/242:

если используется сервер Apache, тогда mod rewrite должен быть включен, иначе перенаправление будет правильным, но с пустым $_POST.

&

если у вас нет конечной косой черты вашего URL-адреса, сервер отправит 301, которые будут мешать данным POST.

Ваша проблема может быть с

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

Попробуйте изменить на:

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

(from: не удается получить отправку сообщений в codeigniter) или попытаться установить:

sudo a2enmod rewrite

Надеюсь, что это поможет!