Обучение C#

Формула программиста
основатель — Волосатов Евгений Витольдович
Вступай в Телеграм чат проекта | Обход блокировки
Игровой комплекс Сокобан - Введи код скидки

Интернет-магазин

Создание простейшего Интерент-магазина своими руками.

В курсе используются технологии:
MySQL, PHP (в составе EasyPHP), JavaScript, HTML, CSS.

Это не «видео-курс», а «фото-курс».
Каждый урок помещается на одной картинке.
Выполняя последовательно все задания можно
в конечном итоге создать свой интернет-магазин.

Использование форм в html и  связь html c php, методы Post и Get, загрузка файлов.
Работа с массивами $_POST, $_GET, $_FILES.
PHP функции: mysqli_connect(), mysqli_query(), mysqli_fetch_assoc(),
move_uploaded_file(), isset(), header(),, addslashes(), die(). print_r().
Работа в консоли MySQL: подключение к базе данных, варианты select-запросов, insert, update.

Хочу купить!

Купить в рассрочку за мегахеши

Цена: 500 p.


Список уроков | фото | видео

# Название видеоурока Решило Рейтинг Доступ
1 Установка EasyPHP 76 чел. ★ 4.9 Done
  Мы начинаем создание Интернет-магазина.
Для работы нам потребуется Мастерская веб-программиста.
Самый простой способ - скачать и установить EasyPHP.

Ссылка: www.easyphp.org/
Скачайте и установите Develop with Devserver.

После этого откроется панель управления -
надо будет запустить Web Server и DB Server.

Проверить, что сайт работает: http://127.0.0.1/

Внимание! Для Windows XP/Vista скачивайте предыдущую версию:
en.softonic.com/s/easy-php-5.2/windows-xp
Проверить, что сайт работает: http://127.0.0.1:8888/

Отчёт отправил: 10558. Иван Воронин Выполнено за 5 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: на скриншоте софт, который я когдато позаимствовал для удобства мониторинга и перезагрузки сервера апач на своём первом сервере с виндой, так же есть второй сервер на лине, там свежее php, если этого будет не хватать, перенесу на линь проект, но думаю и его хватит, поэтому EasyPHP комплект не стал качать, так как всё необходимое уже имеется, настроено и работает уже многие годы, идём дальше 
2 Запуск базы данных 68 чел. ★ 4.9 Done
  На этом уроке мы запустим базу данных, откроем консоль, создадим базу данных, зайдём в неё и создадим там таблицу для хранения товаров.

Внимание!
MySQL запросит пароль - нужно просто нажать Enter (пароль пустой).
Если не выйдет подключиться, проверьте, что база данных запущена!

Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: специально для курса поднял отдельную БД, нестандартный порт =) ничего, придётся чуток дописывать параметры коннекта, не критично, идём дальше... 
3 Добавление товаров 67 чел. ★ 4.9 Done
  На этом уроке мы добавим в нашу базу данных три товара.
Для этого нужно написать SQL-запросы INSERT.
Для того, чтобы увидеть добавленные записи -
нужно набрать команду SELECT *.

Если вы открыли консоль базы данных заново -
то перед началом работы необходимо зайти в свою базу данных -
команда USE Volosatov (используйте свою фамилию).

Отчёт отправил: 10558. Иван Воронин Выполнено за 5 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: так как опыт использования MySQL с 2003 года, решил использовать методы добавления записей способом, который считаю наиболее верным, даже если в будущем надо будет добавить колонки или менять какие-то местами, этот запрос будет работать, а значит минимум работы по исправлению ошибок, урок как и курс очень полезный, может быть открою в нём для себя что-то новое =) 
4 phpMyAdmin 63 чел. ★ 4.8 Done
  На этом уроке мы будем добавлять записи в базу данных через интерфейс phpMyAdmin.

Отчёт отправил: 10558. Иван Воронин Выполнено за 3 час. 30 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: найти время 
Комментарии: так как в этом уроке нужен phpMyAdmin, решил скачать последнюю версию в zip-архиве с оф. сайта, распаковал на стареньком сервере, не запустился, не понравилось, что старая версия php, ок, залил по ftp на новый сервер, настроил, подключаюсь, ругается что MySQL старая версия, естественно, она у меня давно не обновлялась и версии 5.1.59, пока для нужд хватало, ну ладно, решил скачать 5.5.51, минимальная версия которая нужна для последней версии phpMyAdmin, поставил, перенёс БД, настроил конфиг по аналогии со старой версией, кое что новое в конфиге пришлось до настроить, так как не хотелось работать с моими, годами отточенными, настройками, поэтому изучил мануалы новой версии, настроил так, как мне надо и новые параметры, после чего удалось залить дамп БД с версии 5.1.59 в версию 5.5.51, после чего авторизовался через phpMyAdmin и добавил 10 записей, конечно можно было быстро это сделать через Navicat, но зачем нам лёгкие пути? phpMyAdmin - это бесплатная панель управления БД которая есть на каждом хостинге, поэтому обязательная вещь для изучения, я хоть её и знаю, но решил поставить, чтобы поглядеть, что нового в последних версиях, а то на хостингах обычно старьё. з.ы. кстати, заметил, в этом уроке на скриншоте поля price и info поменяны местами, хотя задачи таковой небыло пока что, к чему бы это =) 
5 SELECT запросы 58 чел. ★ 4.9 Done
  На этом уроке мы выполним несколько интересных запросов к нашей базе данных.
Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: Общая сумма всего товара SELECT SUM(`price`) FROM `ware`; 
6 Запуск РНР 57 чел. ★ 4.8 Done
  На этом уроке мы запустим первый скрипт на РНР.
Предполагается, что у вас уже установлен и запущен EasyPHP.
На рисунке показана схема действия для PHP Devserver 16.

Если у вас версия PHP 5.3.5, то нужно РНР файл создать в папке
C:\Program files\EasyPHP-5.3.5.0\www
В браузере необходимо открыть страницу:
http://localhost:8888/

Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: залил на свой старенький сервачёк, пока что и версии php 5.1 хватает, если не будет хватать, перенесу на новый и продолжу там реализацию =) 
7 Всё готово для работы 57 чел. ★ 4.8 Done
  На этом уроке мы убедимся, что у нас всё готово для работы.
1. Установлен EasyPHP
2. Открыта WWW папка.
3, Открыта РНР страница в браузере.
4. Запущена консоль базы данных.
Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт]
Научился: ничего нового 
Сложности: ничего 
Комментарии: предвкушаю продолжение интерсного курса =) 
8 Подружить PHP с MySQL 52 чел. ★ 4.9 Done
  На этом уроке мы подружим РНР с базой данных.
Для этого используется несколько комманд, как на картинке.
Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: хорошая последовательность уроков, отличная проверка на стальные нервы =) 
9 Товары в таблице 51 чел. ★ 4.9 Done
  На этом уроке мы выведем все товары на экран браузера через РНР.
Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: Всё отлично, идём дальше =) 
10 Картинки для товаров 53 чел. ★ 4.8 Done
  На этом уроке мы подберём картинки для каждого товара.
1. Создать папку images в директории с РНР файлами.
2. Вывести на экран все записи.
3. Для каждого товара найти картинку.
4. Сохранить картинку под тем же именем, что и в базе данных.
Размеры всех картинок должны быть примерно одинаковыми.
Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: Картинки подобрал, видимо в след уроках будем их приводить к единому размеру =) 
11 Таблица с Картинками 50 чел. ★ 4.8 Done
  На этом уроке мы добавим в нашу таблицу отображение картинок.

Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: Коротко и ясно =) то что надо для урока фото-курса, ясная мысль и ничего лишнего з.ы. обработал в фотошопе все картинки, а то уж очень руки чесались, так как ширину сделали 100, то картинки сделал 200х200 из-за того, что при ресайзе они чётче смотрятся, не такие замыленные, если бы делал 100х100 качество в браузере было бы хуже, проверено временем =) з.з.ы. как видно их скриншота, занимаемое место картинка уменьшилось почти в 300 раз, это очень важно для сайта, быстрее будут грузиться на стороне клиента и трафика меньше на сервере расходуется в пустую, если сделать картинки 100х100 то можно ещё в 2+ раза уменьшить картинки, но это уже не критично 
12 Форма Товара 44 чел. ★ 4.9 Done
  На этом уроке мы начнём создавать админку,
в которой можно будет редактировать и добавлять товары.
Начнём с создания HTML-формы для добавления записей в базу.
Отчёт отправил: 10558. Иван Воронин Выполнено за 3 час. 00 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: С виду вроде простой урок, но когда увидел задание со звёздочкой, понял, что времени займёт побольше домашнее задание =) 
13 INSERT из РНР 43 чел. ★ 4.9 Done
  На этом уроке мы добавим в edit.php
запрос для добавления товара в базу данных.
Отчёт отправил: 10558. Иван Воронин Выполнено за 50 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: перенёс подключение к БД в отдельный файл dbase.php, а то что это он у нас бесхозно валяется =) так же добавил проверки коннекта к БД/Серверу, если они успешны настраиваются параметры языка и кодировки (люблю я utf8) в прошлых уроках держался, в этом уже не выдержал, хотелось добавить товары на Русском языке =) 
14 SELECT из РНР 39 чел. ★ 4.9 Done
  На этом уроке мы сделаем считывание товара из базы данных по ID номеру,
который передаётся в скрипт через адресную строчку методом GET.
Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: перенёс pre между тегами body из-за того, что плыл дизайн итоговой странички =) з.ы. теги title и link переносились body, теперь всё ок 
15 Товар на форме 39 чел. ★ 4.9 Done
  На этом уроке мы удалим строчки с "print_r" и "die",
чтобы скрипт продолжил работу и вывел форму.
Внутри формы в качестве "value" значений мы
подставим полученные из базы данных значения.

Отчёт отправил: 10558. Иван Воронин Выполнено за 5 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: пункты 2, 3 и 4 ещё на пролом уроке сделал, поэтому просто выполнил пункт 1, добавил картинку цветных шариков и обновил в БД данные по имени файла и скриншот =) 
16 UPDATE товара 38 чел. ★ 4.9 Done
  На этом уроке мы будем использовать запрос
UPDATE для изменения данных в таблице.
Сначала посмотрим, что было в базе,
потом внесём изменения, и посмотрим, что стало.
Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: выполнил задания со звёздочками, см. скриншот 
17 Сохранение изменений 35 чел. ★ 4.9 Done
  На этом уроке мы доработаем скрипт edit.php
При нажатии на кнопку SAVE происходит отправка данных формы методом POST.
При этом в адресной строке остаётся GET параметр "id".
Значит, если указан GET ["id"], то логика следующая.
При наличии POST-данных мы выполняем UPDATE запрос.
Если POST-данных нет - мы выполняем SELECT-запрос, как и раньше.
Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: Если установлен GET, то SELECT запрос произвожу в любом случае. Если нет POST запроса, то используется для отображения текущего товара в форме, если же POST запрос был, то проверяется есть ли товар с таким айди в БД или нет, если есть, то данные о товаре обновляют, если нет, то добавляется новая запись. з.ы. см. скриншот. 
18 Значения по умолчанию 35 чел. ★ 4.9 Done
  Итак, наша форма работает в двух режимах:
1. Отображение данных для редактирования (когда указан параметр id).
2. Пустая форма для добавления нового товара (когда параметр не указан).
Впрочем, если открыть в браузере edit.php без параметров - можно увидеть Notice сообщения.
Это связано с настройками РНР, чтобы это исправить, нужно задать значения по умолчанию.
Для этого мы добавим блок "else" к условию "if isset get id" (то есть когда id не передан),
и в нём установим значения по умолчанию для новой записи.
Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: по-умолчанию используемые переменные сделал пустыми, а в поля формы добавил placeholder, он отображается если ничего не ввели, как только ввели данные, его не видно, эдакая подсказка, какое поле для чего, так же если картинки нет, даже у существующего товара, то не будет отображаться квадратик "не найденной картинки" =) 
19 Нет картинки 35 чел. ★ 4.9 Done
  Что делают интернет-магазины, когда у них нет фотографии товара?
Размещают заглушку "нет фото", что мы сейчас и сделеаем.
Найдите в интернете картинку "нет фото" и сохраните её
в папку images под именем nophoto.jpg.
Далее, пропишем это название картинки в данных по умолчанию.
Таким образом мы исправишил ошибку отсутствия фотографии!
Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: полезная фишка, с прошлого урока вернул обратно HTML код картинки, в переменной теперь хранится имя файла, идём дальше 
20 Редирект на список 35 чел. ★ 4.9 Done
  После добавления/редактирования товара
принято делать переадресацию на список товаров.
Это можно сделать разными способами,
с использованием РНР или JavaScript.
На этом уроке мы применим оба способа.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 45 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: добавил функцию редиректа (в ней 3 вида редиректов, использован редирект со временем в 2 секунды, чтобы было видно сообщение о добавлении/обновлении записи в БД или ошибке, малоли) добавил несколько стилей для отображения "Списка товаров" (+ наследование осталось) добавил чередование фона товаров в списке добавил кнопочки "Изменить" которые ведут на редактирование товара, напротив которого её нажали добавлена кнопка "Добавить" вверху-справа, чтобы открылась пустая форма для добавления нового товара перенёс файл dbase.php в папку "include" и туда же добавил функцию редиректа в файле functions.php 
21 Интерактивный список 33 чел. ★ 4.9 Done
  На этом уроке мы сделаем вызов страницы редактирования из страницы со списком товаров.
Для этого мы вначале страницы разместим ссылку «Добавить новый товар»,
а на номер товара сделаем ссылку на открытие окна редактирования товара.
Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: 1 и 2 пункты сделал на прошлом уроке, как домашнее задание. добавил кнопку и функционал для удаления товара с возможностью отменить удаление в течении 15 минут =) идём дальше... 
22 Отправка файла 31 чел. ★ 4.9 Done
  На этом уроке мы начнём отправлять файл через форму.
Для этого вам нужно сделать следующее (см. список ниже).
* Попробуйте отправить слишком большой файл (больше 10 мегабайт).
* Коды ошибок: http://php.net/manual/en/features.file-upload.errors.php

Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт]
Научился: повторение старого 
Сложности: найти время 
Комментарии: я уже чуть не написал систему обработки загружаемых картинок, но потом хорошо подумал и понял, что тут надо показать дамп массива _FILES, всё супер, идём дальше 
23 Сохранение файла 29 чел. ★ 4.9 Done
  На этом уроке мы сохраним полученный файл в папку "images".

Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: повторение старого 
Сложности: найти время 
Комментарии: добавил папку fonts с файлом шрифта внутри для использования при наложении водяного знака поверх заливаемых фото добавил функции обработки/проверки добавляемых фото с наложением водяных знаков (создал её много лет назад, пришлось немного модернизировать под текущие нужды) множество проверок при добавлении фото (если всё ок, будет положительный лог на экране, спустя 2 сек редирект к списку) добавил иконки для логов ошибок (зелёная галочка или красный кирпичик соответственно) 
24 Запись имени файла в базу 23 чел. ★ 4.9 Done
  На этом уроке мы запишем имя файла фотографии в базу данных.
Это нужно сделать в двух местах - при обновлении (UPDATE) и добавлении.(INSERT).
Добавляемый текст выделен серым фоном.
Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт]
Научился: повторение старого 
Сложности: ничего 
Комментарии: так как ранее была реализована система удаления на сонове задержки в 15 минут, в базе остаются помеченные как удалённый записи, теперь при добавлении товара вначале используются помеченные записи и обновляются данные, если же их нет, тогда добавляется новая запись в БД на скриншоте пошагово показано: 1 - добавили товар, но не прикрепили фото (сообщение) 2 - показано, что товар добавлен, но фото нет 3 - окно редактирования товара, прикреплено фото 4 - сообщения о процессе привязки фото и обновлению товара в БД 5 - в списке товаров уже видно фото у товара з.ы. если фото не прикрепили, то остаётся старое фото (если оно было) провёл косметику дизайна и кода 
25 ФИНАЛЬНЫЙ УРОК 20 чел. ★ 4.8 Done
  На этом наш экспериментальный фотокурс завершается.
Мы создали админку товаров для интернет-магазина.
Целью курса было практическое знакомство с HTML, РНР и MySQL.

Напиши, пожалуйста, отзыв об этом фотокурсе.
Что понравилось, что нет, что можно сделать лучше.

Какой курс ты будешь проходить следующим?
Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт]
Научился: повторил старое 
Сложности: ничего 
Комментарии: Повторил php + NySQL, курс оказался очень коротким, нужно добавить ещё уроков 75 =) чтобы получился полноценный мини магазинчик, в целом курсом доволен, даёт важные знания как начать создавать онлайн проекты с нуля, но продолжение сезона напрашивается само собой =) 
  Итого:   25 видеоуроков общей продолжительностью 00 мин. 20 чел. ★ 4.88  
  Финалисты:   Varkus Maksim,   Иван,   nik,   Šatravka Vladislav,   Tautavičiūtė Anastasija,   Ender,   Tekashnik,   Владимир,   Alcatraz,   Špakova Anastasija,   Максим,   Voskoboinikova Ana ,   Юрий,   Сергей Соколов,   Иван Воронин,   Новопашин Владимир,   Сергей Сергеевич,   Rita,   zhikharevav,   Алексей В. .

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




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

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


Научился: Создал основу для интернет-магазина
Трудности: Ничего сложного, ибо с php уже знаком
Очень полезный и интересный курс. Сюда бы еще css...


Научился: Создавать маленькую и красивую витрину интернет магазина и создавать админку для управления товарами на витрине.
Трудности: Вспоминать и искать ответы по самостоятельным работам.
Всё отлично, курс хороший, но я бы давал ответы на вопросы самостоятельной работы на следующем уроке.