проект на php и mysql с нуля
Hello, world: как сделать сайт на PHP с нуля
Начинающему разработчику нужна практика. Рассказываем, как создать PHP-сайт на своем компьютере, чтобы потренироваться в программировании.
Создаем сайт шаг за шагом
1 шаг. Выбираем веб-сервер
В первую очередь вам нужен веб-сервер. Он будет обрабатывать запросы — маршрутизировать их. Веб-сервер связывает сайт (клиента) с внешним миром. Когда мы наберем в адресной строке index.php, сервер получит запрос и поймет, куда обращаться.
В пятерку популярных сегодня входят Nginx, Apache, Microsoft IIS, CERN httpd, Cherokee HTTP Server. Первые два борются за звание лучшего и самого востребованного. Apache лидирует, но, пока вы читаете эту статью, все может измениться.
2 шаг. Устанавливаем PHP
Затем вам нужен PHP на сервере. Язык программирования бесплатный, разрабатывается на open source-платформе и выложен в свободном доступе. Скачиваете сам PHP и его интерпретатор с официального сайта и переходите к третьему шагу.
3 шаг. Создаем директорию
Теперь создайте на диске компьютера директорию. Название не принципиально, главное — латинскими символами.
4 шаг. Все настраиваем
Прописываем в настройках выбранного вами сервера, куда смотреть при обращении к нему. Рекомендуем Apache или Nginx как лучшие в своем сегменте. Но выбор зависит от целей, с которыми создается сайт.
Чтобы настроить сервер, создайте папку на диске С: с названием Server. В ней еще две — bin и data. В последней создайте подпапки DB (для баз данных) и htdocs (для сайтов). Содержимое архива с Apache распакуйте в C:\Server\bin.
Строим свою CMS на PHP и MySQL. Часть 1
Задача построения системы управления содержанием (CMS) может привести в замешательство новичка разработчика PHP. Но не так страшен черт, как его малюют! В данной серии уроков мы построим простую, но полностью работоспособную систему с нуля.
В ходе процесса вы научитесь создавать базы и таблицы MySQL, работать с объектами, константами, включениями, сессиями и прочими инструментами PHP. Кроме того мы покажем, как отделять логику приложения от презентации и сделать код PHP более безопасным. А также вам откроется многое другое, полезное в деле создания собственной системы мечты.
Вы можете посмотреть работу готового приложения на странице демонстрации (с целью безопасности включен режим «только чтение», так что добавлять, изменять и удалять статьи не получится). Также можно скачать полный код PHP нашей меленькой CMS с переведенными комментариями.
Примечание: для изучения материалов уроков потребуется веб сервер Apache с установленным модулем PHP и сервер MySQL. Для работы на локальном компьютере можно воспользоваться одним из инструментов веб разработчика: XAMPP (на английском языке), Denwer, Open server или другим.
Функционал нашей CMS
Первым делом надо точно определиться, что будет делать наша CMS. Итак, вот список функций:
Каждая статья имеет собственный заголовок, резюме и дату публикации.
Планирование работ
Для создания нашей CMS нужно сделать следующие шаги
Примечание: на страницах уроков приводится код для нашей CMS готовый к копированию в ваши текстовые файлы. Если у вас нет желания создавать файлы самостоятельно, то можно скачать архив с исходниками, в котором содержатся все нужные папки и файлы.
Шаг 1. Создаем базу данных
На первом шаге нужно создать базу данных MySQL для хранения содержания. Можно сделать так:
Запускаем программу клиент mysql Открываем окно терминала и набираем команду
После запроса введите пароль для доступа к MySQL.
Создаем базу данных После метки mysql> вводим:
create database cms;
Выходим из программы клиента mysql После метки mysql> вводим:
Теперь у нас есть пустая база данных, в которой можно размещать таблицы и содержание.
Для решения такой задачи также можно воспользоваться инструментами для администрирования баз данных, таким как phpMyAdmin, cPanel или Plesk (если они установлены на вашем сервере). В некоторых случаях использование подобных инструментов является единственным доступным для пользователя инструментом для работы с базами данных (ситуация зависит от правил, установленных на вашем хостинге).
Шаг 2. Создаем таблицу articles
Создадим схему таблицы. Схема таблицы описывает типы данных, которые могут содержаться в таблице и информацию о ней.
Создаем текстовой файл tables.sql на жестком диске и добавляем в него следующий код:
Разберем выше приведенный код
Также можно воспользоваться инструментами для администрирования баз данных, таким как phpMyAdmin, cPanel или Plesk (если они установлены на вашем сервере).
Шаг 3. Создаем файл конфигурации
Теперь у нас есть база данных и мы готовы разрабатывать код PHP. Начнем с создания файла конфигурации для хранения различных установок для нашей CMS. Данный файл будет использоваться остальными скриптами нашей системы.
Первым делом создаем папку cms в папке веб сервера. Она будет содержать все файлы нашей CMS.
В папке cms создаем файл config.php и копируем в него следующий код:
Разберем код подробно:
Замечание о безопасности
В реальных проектах лучше помещать config.php где-нибудь за пределами корневого каталога веб сайта, так как в файле содержатся имена и пароли. Обычно код PHP невозможно просмотреть в браузере, но иногда из-за неправильной конфигурации веб сервера код становится доступным. Вы можете использовать функцию hash() для хэширования паролей и хранить в config.php хэши, вместо текстовых паролей. Затем при регистрации пользователя можно опять воспользоваться функцией hash() для кодирования введенного пароля и сравнения результата с сохраненным в config.php хэшем.
Создаем первое PHP приложение: Часть №1
Этот урок ориентирован на тех, кто совсем немного знаком с PHP и Объектно-Ориентированным Программированием (ООП) и хотят создать простое веб приложение.
Для более удобного восприятия материала урок состоит из 3-х частей.
Обзор серии уроков
Нам необходимо изучить очень много материала. Вот план:
— создаем набросок проекта
— создаем файлы и папки
— создаем класс для операций с базой данной: DB.class.php
— Создаем класс для пользователей (User)
— Создаем класс UserTools
— Регистрация \ Логин \ Выход
— Формы
— Обработка форм
— Отображение информации сессий
Начинаем наш проект!
Создаем план действий
Всегда важно представлять конечный результат. Прежде чем начать с кодом необходимо задать цели, представить весь проект и решить какой будет структура папок и какие файлы Вам понадобятся. Цель данного проекта очень простая: создать простое приложение на PHP с возможностью регистрации пользователей, входа и выхода, а также с возможностью пользователям менять собственные настройки.
Структура Файлов и Папок
Кроме классов, мы также будем использовать файл с названием global.inc.php. Этот файл будет вызываться с каждой страницы и выполнять обычные операции, которые нам понадобятся. К примеру, в этом файле мы будем выполнять подключение к БД на каждой странице.
Общая структура у нас будет выглядеть так:
Создание Базы Данных и таблицы users
На Вашем сервере должен быть установлен MySQL. Для начала необходимо создать новую базу данных для Вашего приложения. В этой БД создайте таблицу users, которую мы будем использовать для этого урока. Можете использовать следующий код SQL:
Первичным ключом у нас выступает поле “id”, и именно его мы будем использовать для идентификации наших пользователей.
Уникальным полем у нас также будет “username”. Другие необходимые поля “password”, “email”, и “join_date”.
Создаем класс DB.class.php
Цель данного класса очень проста: как можно больше уменьшить использование SQL при обращении к БД, а также организовать данные в удобный для нас формат.
Объяснение кода
Первая функция называется connect(). Эта функция содержит защищенные значения для соединения с БД. Это соединение будет открыто для использования в любом месте текущей страницы (не только внутри класса).
Вот пример использования этой функции вне класса:
Последние 3 функции выполняют простые функции MySQL: select, insert, update. Цель данных функций минимизировать количество SQL кода, который необходимо использовать где-либо в другом месте приложения. Каждая функция создает SQL запрос на основе переданного значения и выполняет этот запрос. В случае select(), результаты форматируются и выводятся. В случае update(), выводится true при успешном выполнении. В случае insert(), выводится id нового ряда.
Вот пример как Вы можете изменить данные пользователя в БД используя функцию update():
Вот и все на сегодня! До следующих частей!
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.buildinternet.com
Перевел: Максим Шкурупий
Урок создан: 14 Декабря 2009
Просмотров: 220297
Правила перепечатки
5 последних уроков рубрики «PHP»
Фильтрация данных с помощью zend-filter
Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.
Контекстное экранирование с помощью zend-escaper
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
Подключение Zend модулей к Expressive
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
Совет: отправка информации в Google Analytics через API
Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Сегодня познакомимся с объектно-ориентированным программированием (ООП) в PHP. Используя принципы ООП, MySQL создадим простое web-приложение.
1. Введение
Данное учебное пособие о создании простого приложения с базой данных в стиле объектно-ориентированного программирования на PHP.
Мы будем использовать Bootstrap, чтобы не тратить время на вёрстку, а сосредоточимся на главном, а именно на ООП.
2. Файловая структура
Файловая структура данного приложения.
3. Структура таблицы базы данных
Создадим базу данных и две таблицы: для категорий и для самих товаров.
3.1 Создание базы данных и таблицы товаров
3.2 Вставка демо-данных для таблицы «Товары»
3.3 Создание таблицы для категорий товаров
Таблицу с категориями мы будем использовать для хранения категорий товаров.
3.4 Вставка демо-данных для таблицы «Категории»
В нашем проекте в качестве категорий будут:
Выполните следующий SQL запрос, используя ваш PhpMyAdmin.
3.5 Результат
Результатом данного раздела у вас должны быть:
4. Создание файлов шаблонов
Чтобы уменьшить беспорядок в коде, мы создадим файлы макетов с нужным кодом и ресурсами.
4.1 Создание файла шаблона «header»
Этот файл layout_header.php будет включен в начало тех файлов PHP, которые ему понадобятся. Таким образом, нам не придется каждый раз писать один и тот же код.
Как уже говорилось ранее, мы будем использовать фреймворк Bootstrap, чтобы наш проект выглядел хорошо.
4.2 Создание файла шаблона «footer»
Шаблон layout_footer.php будем подключать в конец каждого php-файла, который в нём нуждается. Таким образом, нам не придётся каждый раз писать один и тот же код.
Подключим следующие компоненты/библиотеки:
Можно было бы обойтись без сторонних библиотек, используя HTML, CSS и нативный JavaScript, но т.к. задача стоит разобраться в ООП, мы не будем много тратить времени на вёрстку.
Итак, создадим файл «подвала» и подключим его.
4.3 Создание кастомного CSS файла
Этот файл будем использовать для добавления стилей веб-страницы и для переопределения дефолтных стилей Bootstrap.
4.4 Результат
Файлы шаблонов, которые мы создали в этом разделе, предназначены для использования внутри другого файла PHP. Если мы попытаемся запустить файлы макета в одиночку, мы не получим желаемого результата.
Файл custom.css будет выглядеть так.
Шаблон layout_footer.php пуст. Давайте продолжим в следующем разделе, чтобы увидеть более значимый результат.
5. Создание записей в PHP методом ООП
5.1 Создание файла create_product.php
5.2 Создание кнопки «Просмотр всех товаров»
5.3 Подключение к базе данных
5.4 Создание класса конфигурации базы данных
Без этого класса невозможно установить соединение с базой данных. Этот файл класса будет включен в большинство файлов PHP нашего руководства по PHP ОПП MySQL.
В корне проекта создайте папку config и в ней файл database.php со следующим содержимым:
5.5 Создание формы в create_product.php
5.6 Вывод категорий в выпадающем списке
Следующий код будет извлекать категории, и помещать их в раскрывающийся список «Выбрать».
5.7 Создание класса для работы с категориями
5.8 Создание метода readName()
5.9 Выполнение php-кода при отправке формы
Пользователь будет вводить значения в HTML-форму, и при нажатии кнопки отправки, значения будут отправлены через запрос POST, а приведенный ниже код сохранит их в базе данных.
5.10 Создание класса для работы с товарами
5.11 Результат
Форма для создания товара.
Когда вы заполните форму и нажмёте кнопку «Создать».
6. Вывод товаров + пагинация с помощью PHP ООП
В этой части нашего руководства PHP ООП MySQL мы выведем записи из базы данных.
6.1 Создание файла index.php
6.2 Добавление кнопки «Создание товара»
6.3 Настройка переменных для создания пагинации
6.4 Получение записей из базы данных
Теперь мы извлечем товары из базы данных. Замените комментарий // здесь будет получение товаров из БД в файле index.php следующим кодом.
6.5 Создание метода readAll() в файле product.php
6.6 Вывод товаров из базы данных
На этот раз мы покажем пользователю список товаров. HTML Таблица будет содержать наши данные. Поместите следующий код после кода раздела 6.2.
6.7 Добавление кнопок просмотра, редактирования и удаления
Следующий код отобразит три кнопки (ссылки на соответствующие страницы): «Просмотр», «Редактировать» и «Удалить».
6.8 Создание файла paging.php для пагинации
6.9 Создание метода countAll() в objects/product.php
Следующий код будет использоваться для подсчета общего количества записей в базе данных. Это будет использоваться для нумерации страниц.
6.10 Включение paging.php в index.php
Следующий код покажет пагинацию под нашим списком записей. Поместите следующий код после закрывающего тега table в разделе 6.6.
6.11 Результат
Запустите http://php-oop-mysql/index.php через ваш локальный сервер, вы должны увидеть что-то вроде этого:
Список товаров, страница 1.
Список товаров, страница 2.
7. Обновление записи в PHP методом ООП
Я знаю, что наше руководство по PHP OOP MySQL довольно длинное. Пожалуйста, сделайте перерыв или выпейте кофе 🙂
7.1 Создание файла update_product.php
Создайте файл update_product.php и добавьте в него следующий код:
7.2 Создание кнопки «Просмотр всех товаров»
7.3 Получение информации об одном товаре на основе получаемого ID.
Следующий код получит текущие данные, которыми будет заполнена наша HTML-форма. Это важно, потому что это позволит пользователю узнать, какую именно запись он обновляет.
В файле update_product.php замените комментарий // здесь будет получение одного товара следующим кодом.
7.4 Добавление метода readOne() в класс Product
7.5 Добавление значений в форму обновления товара
7.6 Вывод категорий в выпадающем списке
Следующий код перечислит категории в раскрывающемся списке.
7.7 Код при отправке формы обновления товара
7.8 Добавление метода update() в класс товара
7.9 Результат
Щелкните любую кнопку «Редактировать» на главной странице приложения. Форма обновления товара должна выглядеть следующим образом.
Когда вы отправите форму, будет показано сообщение.
В базе данных будет изменена запись.
8.0 Чтение одной записи на PHP в ООП
Ранее мы сделали страницу для редактирования товара и код для «обновления записи». Теперь нам необходимо создать страницу для отображения товара. Этот раздел для чтения одной записи из базы данных будет сделать проще.
8.1 Создание страницы товара
8.2 Чтение одной записи на основе полученного ID
Следующий код считывает одну запись из базы данных. Поместите код перед комментарием // установка заголовка страницы в предыдущем разделе.
8.3 Отображение товара в HTML-таблице
8.4 Результат
Нажмите любую кнопку Просмотр на главной странице, вы должны увидеть что-то вроде изображения ниже.
9. Удаление записи на PHP в ООП
9.1 Добавление JavaScript для удаления товара
9.2 Создание файла delete_product.php
Откройте delete_product.php и добавьте в него следующий код:
9.3 Метод для удаления товара в классе Product
9.4 Результат
Щелкните любую кнопку Удалить на главной странице. Появится всплывающее окно подтверждения.
10. Поиск записей в PHP методом ООП
Следующие разделы являются бонусными, поэтому если вы не разобрались с кодом выше, лучше сначала разберитесь, а затем продолжайте изучение дальше.
И так, продолжим, добавим функцию поиска. Это ответит на вопрос: «Как искать данные в базе данных на php?» Это очень полезная функция, потому что вы позволяете пользователям легко искать определенные данные в нашей базе данных MySQL.
10.1 Изменение index.php
10.2 Создание read_template.php
Зачем нам этот шаблон? Он нам нужен, потому что точно такой же код может использоваться и в index.php и в search.php для отображения списка записей. Использование шаблона означает меньший объем кода.
Создайте read_template.php с формой поиска.
10.3 Создание core.php в папке config
Этот файл будет содержать наши переменные пагинации страниц. Использование файла core.php является хорошей практикой, его можно использовать для хранения других значений конфигурации, которые могут вам понадобиться в будущем.
Откройте core.php и добавьте следующий код:
10.4 Изменение кода в paging.php
Новый код paging.php будет выглядеть следующим образом.
10.5 Создание файла search.php
Это самый важный файл в этом разделе. В этом файле будут отображаться записи на основе поискового запроса пользователя.
10.6 Добавление методов search() и countAll_BySearch()
10.7 Результат
Выполним поиск по слову «телефон».
11. Загрузка файлов в PHP методом ООП
Это последняя часть нашего руководства по PHP ООП MySQL. Наслаждайтесь каждой строчкой кода! 🙂
В этом разделе мы добавим функцию «загрузки файлов» для товаров.
Свой движок сайта на php в связке с MySql, для начинающих
Среди обычных пользователей различных CMS, есть те, у которых есть желание создать свою собственную CMS. Одним из таких пользователей был я.
В конце декабря я загорелся желанием сделать что то свое, при очень малом знании языков. И теперь, я хочу помочь рядовому пользователю несколько освоится в связке php и MySql, и в том, как можно написать свой сайт.
Во первых, мы должны понять, что у нас будет за сайт, и какова будет его структура.
У меня была идея фикс — истории из игр, чтобы любой пользователь мог их добавлять и выводились они постранично из БД MySql.
И так, сначала разметим структуру страницы. Для меня это было:
Header
Menu
Content
Sidebar
Footer
Header — шапка сайта;
Menu — соответственно меню;
Content — содержимое страниц в моем случае истории, но содержимым может быть все, что угодно;
Sidebar — боковая колонка, где находились новости и лучшие истории;
Footer — нижняя часть сайта (подвал) с копирайтом.
Также, нельзя забывать о подключении к базе данных — ведь страницы у нас динамические, и всю информацию мы будем брать оттуда, поэтому нам понадобится еще пара вещей — файл с конфигом, а также файл, который будет подключать нас к базе данных.
После этого, я создал 6 пустых php: index.php, config.php, connect.php, header.php, menu.php, content.php, sidebar.php и footer.php.
Забыл отметить, что для удобства редактирование кода стоит скачать программу Notepad++ — русская версия в ней есть.
Итак, начнем с простого. Для начала, в файл index.php добавим вот этот код:
Тэгами мы открываем и закрываем наш код (вместо