CodeIgniter / Lost входных данных, $ _POST тоже пусто - PullRequest
0 голосов
/ 18 октября 2019

Я нахожусь в процессе обновления давно просроченного CI 2. что-то до CI 3.1.11. Пока все хорошо, за исключением данных формы, которая теряется. Ни $this->input->post('usr'), ни $_POST не содержат никаких значений вообще. Пусто!

Просматривая некоторые ответы, я понял, что мой htaccess может быть виноват - однако, похоже, он отлично работает в любом другом случае ...

Я запускаю PHP 7.3. 9 на Apache2. mod_rewrite включено.

Вот мой htaccess

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]


</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule> 

Это может быть файл htaccess ИЛИ что-то еще. Любые идеи?

UPD: чтобы добавить к путанице: журнал Apache для этого одного запроса на vhost http://esp.atlas.local читает:

127.0.0.1 - - [19 /Oct / 2019: 23: 00: 42 +0200] "POST / admin / HTTP / 1.1" 301 236
127.0.0.1 - - [19 / Oct / 2019: 23: 00: 42 +0200] "GET / adminHTTP / 1.1 "200 4592

UPD2: путаница устранена: я отправляю форму по тому же URL-адресу, что означает, что она сначала posts, а затем gets HTML-представление из нее.

В любом случае, я начинаю подвергать сомнению свою мораль, поскольку я перепробовал все возможные конфигурации htaccess (даже получил один из проекта Lumen / Laravel, который я запускаю на той же машине), и я либо ничего не получаю, либо я получаю 403 запрещенных(что является новым, но все еще ничего не решает). Есть еще идеи?

1 Ответ

0 голосов
/ 24 октября 2019

Хорошо, так что был проблемой CodeIgniter, так как мои htaccess, форма method, форма URL и т. Д. Были в порядке. Все остальные URL работали. Только $ _POST получал 403 ...

Проблема заключалась в том, что защита csrf_token была установлена ​​в true, и поскольку токена не было, CI только что выдал 403. Мне пришлось фактически искать строку ошибки в установкекаталог, чтобы увидеть, в чем проблема. Duh.

Вот мой htaccess для всех, кто сталкивался с подобными проблемами (3 потерянных дня, Карл!)

<IfModule mod_rewrite.c>

    RewriteEngine On
    RewriteBase /    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ ./index.php/$1 [L]

</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...