Size: a a a

Laravel для начинающих

2020 June 26

4

4unkur in Laravel для начинающих
алгоритмы не учил к сожалению.
Есть варианты как то улучшить подобное?
источник

4

4unkur in Laravel для начинающих
$assignmentScopes = [
   ['id' => 8, 'scope_type_id' => 1],
   ['id' => 2, 'scope_type_id' => 1]
   ...
];

$questionScopes = [
 ['scope' => 1, 'type' => 1],
 ['scope' => 2, 'type' => 1],
 ...
];

$matches = false;

foreach ($assignmentScopes as $asScope) {
   foreach ($questionScopes as $qScope) {
       if ($asScope->id === $qScope->scope && $asScope->scope_type_id === $qScope->type) {
           $matches = true;
           break 2;
       }
   }
}
источник

4

4unkur in Laravel для начинающих
по сути нужно выяснить: есть совпадающая пара
источник

SG

Sergey Gerasimov in Laravel для начинающих
4unkur
$assignmentScopes = [
   ['id' => 8, 'scope_type_id' => 1],
   ['id' => 2, 'scope_type_id' => 1]
   ...
];

$questionScopes = [
 ['scope' => 1, 'type' => 1],
 ['scope' => 2, 'type' => 1],
 ...
];

$matches = false;

foreach ($assignmentScopes as $asScope) {
   foreach ($questionScopes as $qScope) {
       if ($asScope->id === $qScope->scope && $asScope->scope_type_id === $qScope->type) {
           $matches = true;
           break 2;
       }
   }
}
А заранее нельзя сформировать с одинаковыми ключами и сделать array_diff, например?
источник

AH

Andrey Helldar in Laravel для начинающих
Shotty
Привет. Подскажите пожалуйста неплохой редактор  (визифиг) который вы юзали в проектах и чтобы был бесплатный и можно было к ларе подключить?
источник

VY

Vladimir Yefremov in Laravel для начинающих
у него вроде с безопасностью не все гут?
источник

AH

Andrey Helldar in Laravel для начинающих
Vladimir Yefremov
у него вроде с безопасностью не все гут?
А что там небезопасного может быть? Это же фронт.
источник

VY

Vladimir Yefremov in Laravel для начинающих
Andrey Helldar
А что там небезопасного может быть? Это же фронт.
в точности не знаю, пишу понаслышке...

в него вводишь текст и он сохраняется с хтмл тегами, а выводишь {!!$result->text!!} тоже без обработки....

или не?
источник

AP

Alexander Pavlenko 🌚... in Laravel для начинающих
Ну так это и обычный textarea делает
источник

AH

Andrey Helldar in Laravel для начинающих
Vladimir Yefremov
в точности не знаю, пишу понаслышке...

в него вводишь текст и он сохраняется с хтмл тегами, а выводишь {!!$result->text!!} тоже без обработки....

или не?
Он и должен теги "как есть" передавать при сохранении.
источник

VY

Vladimir Yefremov in Laravel для начинающих
Andrey Helldar
Он и должен теги "как есть" передавать при сохранении.
конечно должен, иначе не будет форматирования текста, но из других инпутов мы отсылаем в базу данные очищенные от тегов. В них вроде может быть атака? Иначе бы для чего так стараться:
    $value = trim($value);
   $value = stripslashes($value);
   $value = strip_tags($value);
   $value = htmlspecialchars($value);

я думаю - у Лары под капотом примерно это же, если не жестче?
источник

AH

Andrey Helldar in Laravel для начинающих
Vladimir Yefremov
конечно должен, иначе не будет форматирования текста, но из других инпутов мы отсылаем в базу данные очищенные от тегов. В них вроде может быть атака? Иначе бы для чего так стараться:
    $value = trim($value);
   $value = stripslashes($value);
   $value = strip_tags($value);
   $value = htmlspecialchars($value);

я думаю - у Лары под капотом примерно это же, если не жестче?
Не, у Лары нет под капотом такого. При записи в базу она лишь экранирует спецсимволы, чтобы инъекция не проскочила, а вот в каком виде записывать текст в базу - разработчик решает сам.
Где-то надо как есть, в где-то и теги асе удалить.
источник

VY

Vladimir Yefremov in Laravel для начинающих
Andrey Helldar
Не, у Лары нет под капотом такого. При записи в базу она лишь экранирует спецсимволы, чтобы инъекция не проскочила, а вот в каком виде записывать текст в базу - разработчик решает сам.
Где-то надо как есть, в где-то и теги асе удалить.
Оу.... Я думал Лара обеспечивает безопасность данных из инпутов и никогда не парился над этим....
Ну, в принципе, если инъекции не проскочат - то вроде все ОК?

П.С. кстати - я сам ни разу не пробовал ввести в какое-то поле данные с чем-то кроме букв - теги, спецсимволы, ЖС....
попробую
источник

M

Michael in Laravel для начинающих
Vladimir Yefremov
Оу.... Я думал Лара обеспечивает безопасность данных из инпутов и никогда не парился над этим....
Ну, в принципе, если инъекции не проскочат - то вроде все ОК?

П.С. кстати - я сам ни разу не пробовал ввести в какое-то поле данные с чем-то кроме букв - теги, спецсимволы, ЖС....
попробую
Лара обеспечивает безопасность данных выводом {{ }}
В {!! !!} не просто так восклицательные знаки стоят )
Если надо публиковать html, который пользователь вводит, его надо дополнительно фильтровать.
источник

M

Michael in Laravel для начинающих
В современных визивиг-редакторах есть белые списки тэгов плюс система фильтрации атрибутов, но полагаться на них нельзя - хакир отправит тебе что надо простым http-запросом в постмане
источник

VY

Vladimir Yefremov in Laravel для начинающих
Michael
В современных визивиг-редакторах есть белые списки тэгов плюс система фильтрации атрибутов, но полагаться на них нельзя - хакир отправит тебе что надо простым http-запросом в постмане
понятно...
спасибо!
источник

VY

Vladimir Yefremov in Laravel для начинающих
интересный момент:
по недосмотру сохранил в БД в строковое поле - массив; он сохранился просто строкой с квадратными скобками [ ], с элементами в кавычках - все прямым текстом.
А во вьюхе у меня раньше стоял foreach для этого списка, т.к. массив формировался в контроллере.
И тут я забыл проверить - что с моим массивом в контроллере, а он так и передался - фактически строкой... перехожу на страницу, и вижу, что эта строка из БД распознается как  массив нормально, и спокойно выводится через forech....

Это глюк или фича? :)
источник

Gt

Galèriarch the Koban... in Laravel для начинающих
Vladimir Yefremov
интересный момент:
по недосмотру сохранил в БД в строковое поле - массив; он сохранился просто строкой с квадратными скобками [ ], с элементами в кавычках - все прямым текстом.
А во вьюхе у меня раньше стоял foreach для этого списка, т.к. массив формировался в контроллере.
И тут я забыл проверить - что с моим массивом в контроллере, а он так и передался - фактически строкой... перехожу на страницу, и вижу, что эта строка из БД распознается как  массив нормально, и спокойно выводится через forech....

Это глюк или фича? :)
Наверное какая-то магия лары.
источник

Gt

Galèriarch the Koban... in Laravel для начинающих
Как обычно. 😃
источник

VY

Vladimir Yefremov in Laravel для начинающих
Galèriarch the Kobanian 🐗
Наверное какая-то магия лары.
значит фича - спасение невнимательных :)
источник