Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Общий раздел » Ошибка VerifyCsrfToken.php line 68 из-за Apache » 27.11.2018 15:51:12

Поправка. С Сервером кажется все понятно. Включил роут в исключения проверки CSRF токена - и запросы начали проходить. Значит вопросы к конфигурации Laravel. Итак, подскажите, как сконфигурировать lаrаvel, что бы CSRF проверка проходила не только на localhost, но и а боевом сервере?

#2 Общий раздел » Ошибка VerifyCsrfToken.php line 68 из-за Apache » 25.11.2018 18:36:03

Bastonc
Ответов: 1

Всем привет, получил такую головную боль.
На локальном компьютере под Linux laravel совместно с Apache отлично работают. Если конектится на localhost:8000  - все супер. Как только перехожу на рабочий сервер, сайт работает, но получаю ошибку TokenMismatchException in VerifyCsrfToken.php line 68, при попытке отправки данных через любую форму, включая логин(она в проекте родная).
Разумеется {{ csrf_token() }} стоит везде где нужно, да и формы у меня открываются и закрываются с помощью Form::open, Form::close. Если бы были ошибки размещения токена в коде - то и на локальном сервере бы не работало, но в локальном исполнении - все работает. Больше того - локальный и рабочий в данном случае один и тот же сервер. Но если коннектится на localhost:8000 - все работает. а если по внешнему IP - ситуация как описал - все работает до попытки отправки данных из любой формы на сайте.
В запросе токен присутствует. Вот скриншот ошибки с данными из формы https://drive.google.com/file/d/1lj7uTg … sp=sharing
Вот даже не пойму куда копать. Прошу помощи сообщества.
Система GNU/Linux Fedora 29, стандартный апач с включенным mod_rewrite.
Буду благодарен за ответview?usp=sharing

#3 Laravel 5.x » Получить поля формы которые добавляются в форму динамически (js) » 14.08.2018 23:39:09

Bastonc
Ответов: 0

Всем доброго времени
В Laravel новичек.
Версия Laravel 5.6, система W10x64 (Думаю это все не важно в данном случае)
Имею код в шаблоне blade

 
<script>
                var n=1;


                document.getElementById('divhidden').innerHTML='<input type=hidden id=\"id'+n+'\" name=\"index_sps\" value=\"0\" >';
                function plus(){
                    document.getElementById('divf'+n).innerHTML+='<br>'+n+' СПС: <input type=text id=\"id'+n+'\" name=\"sps_call_'+n+'\" size=\"10\"> баллов: <input type=text id=\"id'+n+'\" name=\"sps_score_'+n+'\" size=\"3\"> Пароль: <input type=text id=\\"id\'+n+\'\\" name=\\"password_\'+n+\'\\" size=\\"3\\"><input type=\"button\" id=\"id'+n+'\" onclick=del(id'+n+'); value=\"-\"> <div id=divf'+(n+1)+'></div>';
                    document.getElementById('divhidden').innerHTML='<input type=hidden id=\"id'+n+'\" name=\"index_sps\" value=\"'+n+'\">';
                    n++;

                }

                function del(id){
                    document.getElementById(id).remove();


                }
            </script>

        <table border="0">
                <form action="newprogramm" method="post">
                    {{ csrf_field() }}
                <tr><td> Название программы:</td> <td> <input type="text" name="Name"></td></tr>
                <tr><td> Описание: </td> <td> {{Form::textarea('Description', 'Описание программы будет отображаться на главной странице' )}}</td></tr>
                <tr><td> Повторы:<br>0 - повторы запрещены<br>1 - разрешены на разных диапазонах<br>2 - разрешены везде и всегда<br><br><br></td> <td> {{Form::text('Repeat')}}</td></tr>
                <tr><td> Необходимо набрать: </td> <td> {{Form::text('ScoreFinal', 'Необходимо набрать очков' )}}</td></tr>
                <tr><td> Очки по умолчанию: </td> <td> {{Form::text('ScoreDefault', 'Очки по умолчанию' )}}</td></tr>
                <tr><td> Путь к картинке: </td> <td> {{Form::text('Image', 'путь к картинке')}} </td></tr>
        </table>
    <p> <font size="2"><i>Внимание! Добавляйте СПС с указанием пароля. <br>В последствии предавайте ответственным СПС операторам данный пароль<br>
                Они будут заливать ADIF отчеты используя для входа свой СПС как логин и пароль который Вы укажите в этой форме</i></font></p>

        <div id=divf1>

                     </div>
                        <div id=divhidden>

                </div>
                <input type=button onClick=plus(); value='+ СПС'><br><br>
                <input type="submit" value="Создать">


        </form>

В нем динамически в форме добавляется по нажатию на кнопку три поля.
Элемент divhidden и соответствующее скрытое поле с именем index_sps = является счетчиком добавленных блоков полей.
Это поле служит в скрипте как указатель сколько полей нужно обработать. Но не суть в данном случает.
Код отрабатывает, если в браузере посмотреть код - то видно, что поля добавляются и они находятся в пределах формы
ссылка на скриншот формы в браузере - http://joxi.ru/xAe6qKMcp7lnpr
но при передаче формы этих добавленных полей в request'е нет.
ссылка на скриншот вывода dd(request()) - http://joxi.ru/Dr8j5BMc4jy692
Вопрос собственно как мне передать эти поля для обработки в скрипт?

Добавлю, что в классическом PHP все работает. Просто изучаю сейчас Laravel на живом проектике и вот столкнулся с такой проблемой.
Буду благодарен за подсказку

Подвал раздела