Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Доска объявлений / Работа с документацией Yii2

  • На этом уроке переходим на один из официальных сайтов по Yii2
    и, пользуясь помощью документации, реализовываем одну из своих идей

  • Дата отправки отчёта: 26 января 2020 г.
  • Задание выполнено: за 2 час. 54 мин.
  • Чему научился: добавил хеширование пароля пользователя bcrypt через функцию crypt для генерации и проверки пароля
    Пишут, что алгоритмы md5 или sha1 уже недостаточно защищённые, что требует дополнительных мер безопасности
    Дополнительно подправил отображение карточки объявления (там где картинка накладывается на текст справа) - надо освежить в памяти бутстрап, жестко привязывать размер изображения в угоду лишь своему монитору - это половинчатое недорешение
  • Оценка видео-уроку:
Отчёт от 17947 за Доска объявлений / Работа с документацией Yii2


Отчёт от 17947 за Доска объявлений / Работа с документацией Yii2




Оцени работу

 
Сохранить страницу:

791. --
Валерий Жданов
Валерий Жданов
ответить
→  Dmitry Sinitsin  # Доска объявлений / Работа с документацией Yii2 / 2020-01-26 14:21

да, про эти алгоритмы такое пишут, оттого и двухфакторная аутентификация всё чаще используется


  • Отчёт оценивали:
    791Валерий Жданов+1   23687Игорь Бойко+1   2146Иван+1   23035MartinO0   9014Николай Денисов+1   13417Chip+1   7119Новопашин Владимир+1   9980Timoha+1   Посетитель+1  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: использовать функцию exists(); а также узнал о unique в правилах ActiveRecords
Трудности: Наконец, Сделал этот урок. Прошлый урок сделал 25 мая. Это был самый сложный урок. Заметил, что у нас можно регистрировать людей с одинаковыми логинами. Решил это исправить. Долго искал место, где же это надо сделать. Методом проб и ошибок с трудом нашел, куда же это можно прикрутить. Не уверен, что сделал это там , где нужно. Но для меня было главным, чтобы заработало. А то в процессе поиска пару раз совсем сломал все. А бекапа не делал. Рад, что все-таки удалось починить.



Научился: В своем отчете https://www.videosharp.info/30514/checking/bulletin=2582 я указал три ошибки на сайте. В этом уроке их исправлял. Первая проблема: некорректные элементы br в тексте объявления. Для решения первой проблемы я перенес вызов функции nl2br для поля info из модели BulletinsForm в код представления site/viewbulletin. Теперь в базе данных нет текста br, он появляется только в момент показа объявления в представлении. Вторая проблема: встраивание html, css, javascript в поля формы. Чтобы решить вторую проблему я использовал документацию по yii по адресу https://www.yiiframework.com/doc/guide/2.0/en/structure-views#security . Добавил вызовы функций Html::encode и HtmlPurifier::process вокруг вывода информации из базы данных в представлении. Настроил вызов HtmlPurifier::process для того, чтобы разрешить только теги br, а все остальные теги экранировались. Теперь все html-теги(кроме br для переноса строки в поле info), css-правила и javascript-код экранированы и не влияют на дизайн страницы. Javascript код не запускается. Третья проблема: при уменьшении ширины окна изображение выходит за границы левой колонки. Третья ошибка не связана напрямую с yii2, здесь дело в верстке. Для ее решения я изменил значение атрибута style на style="max-width: 100%; height: 400px; object-fit: contain;". Теперь изображение занимает не больше, чем 100% ширины родительского элемента и не выходит за границу левой колонки. Высота фиксирована, поэтому миниатюры под изображением не прыгают. И object-fit: contain необходим для сохранения пропорций изображения при его замене после выбора миниатюры.