Laravel по-русски

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

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

#1 17.03.2016 14:05:07

WebDev

Обработка спецсимволов

Всем привет. Такая проблема : все таблицы с системе у меня на bootstrap-table, который принимает данные таблицы из json.

К примеру я создаю продукт с таким именем :  s srEW%@#$ #@$ #$<script>alert(5);</script> , сохраняю, в БД (string) хранится в таком же виде :  s srEW%@#$ #@$ #$<script>alert(5);</script>

Затем открываю продукты и мне выдает сообщение alert(5) .

Как решить проблему, экранирования?
В бд добавляются все данные через метод :

function store($attributes) {
        $model = $this->model->newInstance($attributes);
        if (!$model->save()) {
            return new ExceptionResponse(trans('home.store_error'));
        }

        return $model;
}

#2 17.03.2016 14:58:23

xelam
writerПисарь
Откуда: Москва
Сообщений: 50
Статей: 2

Re: Обработка спецсимволов

теперь осталось узнать как ты их открываешь.

Не в сети

#3 17.03.2016 15:15:13

WebDev

Re: Обработка спецсимволов

xelam пишет:

теперь осталось узнать как ты их открываешь.

То есть открываешь?  Вот вывод продуктов шаблон:

    <script>
        $('#table').bootstrapTable({
            url: 'product/json',
            method: 'get',
            columns: [{
                field: 'name',
                sortable: true,
                title: '@lang('product.name')'
            },
            {
                field: 'description',
                sortable: true,
                title: '@lang('product.description')'
            }]
        });

    </script>
@endsection

<table id="table"
       data-toggle="table"
       data-search="true"
       data-show-refresh="true"
       data-sort-name="status"
       data-sort-order="desc"
       data-pagination="true"
       data-page-list="{{ config('constant.table.pagination') }}"
       data-side-pagination="server">
</table>

#4 17.03.2016 15:26:33

duster
Откуда: Мельбурн
Сообщений: 148

Re: Обработка спецсимволов

Ну, Laravel же тут не причем - когда в шаблоне Blade выводится переменная, она будет экранироваться по умолчанию, а у Вас в JS отдаются данные в формате JSON

Коверкать данные из БД перед конвертацией в JSON - было бы как-то некорректно

Здесь, по-хорошему, bootstrapTable должен экранировать

Не в сети

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