Laravel Laravel 5.5 Нет данных $_POST

littus

Новичок
Laravel-5.5
PHP 7.0.27
Linux carrot x86_64
Server: FPM/FastCGI (на локальном где все работает стоит- Apache 2.0 Handler )

Всем привет!
Столкнулся с такой проблемой. Разрабатывал проект на Laravel-5.5 на локальной машине(PHP/Server -7.0.26-2/Apache 2.0 Handler ). После чего залил весь проект,как есть на бесплатный хостинг, где у меня размещено несколько проектов наWordPress.
На хостинге в настройках выбрал версию PHP = 7.0.
Все в принципе работает нормально, за исключением того, что на фронтенд-части сервера не работает POST, - я его не получаю вообще.
На сайте есть форма- контактная форма и из нее из POST я должен получать данные для валидации и формирования письма, но POST я вообще не получаю.
При том что проект имеет бэкенд-часть, где у меня из Админ-панели редактируется некоторый контент и там есть аналогичные формы POST(для редактирования,добавления нового материала). Так вот эти формы в бэкэнде работают отлично (получаю POST данные из них, обрабатываю, валидирую). На локалке(с которой я копировал проект) конечно же все работает как нужно и все норм.

Контроллер
PHP:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use App\Http\Controllers\Controller;

use App\Page;
use App\People;
use App\Portfolio;
use App\Service;

class IndexController extends Controller
{
    public function execute( Request $request ) {

        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
            var_dump($_POST);die; //NOTHING!!!
        }

        if( $request->isMethod('post') ) {
            ......
            dd( $request->all() ); //NOTHING!!!

            //Validate
            ......
            return redirect()->route('home')
                ->withErrors($validator)->withInput($request->all());
        }


        return view('frontendsite.index', [
        ....
        ])->render();
}
Роут:

PHP:
Route::group( ['middleware'=>['web'] ], function() {
    Route::match(['get','post'], '/', ['uses'=>'IndexController@execute', 'as'=>'home']);

    Route::auth();
});
Во вью, где находится эта форма все стандартно - я использую просто стандартную форму с нужными полями:

PHP:
    <form class="form-horizontal" name="contact_us_home_form" action="{{ route('home') }}" method="post" novalidate>
        <input type="hidden" name="_token" value="{{ csrf_token() }}">
           .....
    </form>
Как уже говорил, на бекен-части есть много форм и все они работают, - т.е.все норм, что меня вообще сбивает с толку, поскольку все одинаково по-сути, ну кроме того, что для бекенд-части у меня префикс другой и Класс-посредник другой, - тут ['auth'], а в том роуте,
что выше приведен - ['web']:

PHP:
Route::group( [ 'prefix'=>'admin', 'middleware'=>['auth'] ], function() {
.....
});

В чем может заключаться проблема??

Сначала я подумал,что возможно не правильно перенес проект, т.к. по сути я просто, как есть, включая папку [vendor], скопировал сожержимое с локалки на бесплатный хост и там на хосте я не делал composer update, например. Но если так, то остальные формы на backend`e работают, - значит все норм. Так в чем же дело??
 

Andkorol

Новичок
Что в route('home') ?
На фронте используется https?
Отследи запросы в консоли браузера (вкладка Network) – что именно (POST|GET) и куда отправляется, и что возвращается в ответ.
 

littus

Новичок
Что в route('home') ?
На фронте используется https?
Отследи запросы в консоли браузера (вкладка Network) – что именно (POST|GET) и куда отправляется, и что возвращается в ответ.
Нет, на фронте и на бэке протокол http
Сам роут я привел, а в вьюхе есть некоторый контент и в конце форма обратной связи. Она единственная на странице - это LandingPage/
Кусок вюю с началом формы я тоже привел, полагаю остальное в данном вопросе не существенно.

что касается дебага запросов и статуса в консоли, то вот: https://prnt.sc/i7mm90

Сам URL сайта, по которму показывается страница - domen/public/

P/S может дело в .htaccess ?
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Откуда там взялся 301?
 

littus

Новичок
Может, но гадать тут бесполезно – нужно смотреть .htaccess
На скрине виден 301-й редирект.
Код:
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

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

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
 

WMix

герр M:)ller
Партнер клуба
Код:
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

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

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
server nginx a не Apache

https://laravel.com/docs/5.5/deployment#server-configuration
 

littus

Новичок
Писал,что на локалке, где все норм работает, стоит Apache, и да, на локалке я настроил праметры конфигурации для данного проекта на Laravel как:
Код:
<VirtualHost *:80>
    ServerName landing.laravel.loc
    ServerAlias *.landing.laravel.loc

    ServerAdmin [email protected]

    ErrorLog ${APACHE_LOG_DIR}/landing.laravel.loc-error.log
    CustomLog ${APACHE_LOG_DIR}/landing.laravel.loc-access.log combined

    DocumentRoot "/var/www/landing.laravel.loc/public"

    <Directory "var/www/landing.laravel.loc">
      Options Indexes FollowSymLinks
      Order allow,deny
      Allow from all
      AllowOverride all
    </Directory>
</VirtualHost>
Но сейчас на данном бесплатном хосте я не имею возможности ничего изменять, имею возможность что-то делать только в своем .htaccess . Я могу там что-то сделать прописать дополнительно для устранения своей проблемы?

Хотя в разделе /admin/ этого приложения такие же формы с POST работают и валидирутся - т.е.все нормально и как нужно/
Так что я могу сделать?
 

littus

Новичок
Вот сам же редиректишь. И удивляешься чему-то.
Да, теперь понимаю похоже в чем проблема, такой .htaccess на локалке и где я прописал дополнительно конфигурацию для точки входа сайта. Стыдно признаться, но не знаю, как мне сейчас правильно прописать в .htaccess.
 
Сверху