Обучение C#

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

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

Для просмотра видеоуроков необходимо авторизоваться

Зарегистрируйся и войди в систему, чтобы получить доступ к видео-урокам.
На каждом видео-уроке мы с нуля пишем готовую программу с подробными объяснениями.

 Регистрация    Вход

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





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

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

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

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


Научился: добавил хеширование пароля пользователя bcrypt через функцию crypt для генерации и проверки пароля Пишут, что алгоритмы md5 или sha1 уже недостаточно защищённые, что требует дополнительных мер безопасности Дополнительно подправил отображение карточки объявления (там где картинка накладывается на текст справа) - надо освежить в памяти бутстрап, жестко привязывать размер изображения в угоду лишь своему монитору - это половинчатое недорешение



Научился: В своем отчете 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 необходим для сохранения пропорций изображения при его замене после выбора миниатюры.