- Создаем первое PHP приложение: Часть №1
- 5 последних уроков рубрики «PHP»
- Фильтрация данных с помощью zend-filter
- Контекстное экранирование с помощью zend-escaper
- Подключение Zend модулей к Expressive
- Совет: отправка информации в Google Analytics через API
- Подборка PHP песочниц
- Объектно-ориентированный PHP с классами и объектами
- Что такое объектно-ориентированное программирование (ООП)?
- Что такое класс PHP?
- Разработка приложений ооп php
- Как выбрать хороший хостинг для своего сайта?
- Как разместить свой сайт на хостинге? Правильно выбранный хороший хостинг — это будущее Ваших сайтов
- Разработка веб-сайтов с помощью онлайн платформы Wrike
- Почему WordPress лучше чем Joomla ?
- Про шаблоны WordPress
- Анимация набора текста на jQuery
- Самые первые настройки после установки движка WordPress
Создаем первое PHP приложение: Часть №1
Этот урок ориентирован на тех, кто совсем немного знаком с PHP и Объектно-Ориентированным Программированием (ООП) и хотят создать простое веб приложение.
Для более удобного восприятия материала урок состоит из 3-х частей.
Обзор серии уроков
Нам необходимо изучить очень много материала. Вот план:
Часть №1 — Создаем проект и создаем первый класс
— создаем набросок проекта
— создаем файлы и папки
— создаем класс для операций с базой данной: DB.class.php
Часть №2 — Доделываем серверную чаcть
— Создаем класс для пользователей (User)
— Создаем класс UserTools
— Регистрация \ Логин \ Выход
Часть №3 — Создаем внешний интерфейс
— Формы
— Обработка форм
— Отображение информации сессий
Начинаем наш проект!
Создаем план действий
Всегда важно представлять конечный результат. Прежде чем начать с кодом необходимо задать цели, представить весь проект и решить какой будет структура папок и какие файлы Вам понадобятся. Цель данного проекта очень простая: создать простое приложение на PHP с возможностью регистрации пользователей, входа и выхода, а также с возможностью пользователям менять собственные настройки.
Структура Файлов и Папок
ООП PHP программирование использует классы и объекты для выполнения необходимых для приложения операций. При планировке Вам необходимо подумать о том, какие классы Вам понадобятся. Для данного проекта мы создадим 3 класса. Первый класс — User (будет содержать информацию о пользователе с функцией простого сохранения save()), второй — UserTools (будет содержать функции, которые необходимы пользователям, такие как login(), logout() и другие. ), третий — класс БД (он будет выполнять роль связующего звена — подсоединение к БД, внесение изменений, вставка новых рядов, и многое другое).
Кроме классов, мы также будем использовать файл с названием global.inc.php. Этот файл будет вызываться с каждой страницы и выполнять обычные операции, которые нам понадобятся. К примеру, в этом файле мы будем выполнять подключение к БД на каждой странице.
Другие файлы — это страницы для пользователей: index.php, register.php, login.php, logout.php, settings.php и welcome.php.
Общая структура у нас будет выглядеть так:
Создание Базы Данных и таблицы users
На Вашем сервере должен быть установлен MySQL. Для начала необходимо создать новую базу данных для Вашего приложения. В этой БД создайте таблицу users, которую мы будем использовать для этого урока. Можете использовать следующий код SQL:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL, `password` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`join_date` datetime NOT NULL,
PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Первичным ключом у нас выступает поле “id”, и именно его мы будем использовать для идентификации наших пользователей.
Уникальным полем у нас также будет “username”. Другие необходимые поля “password”, “email”, и “join_date”.
Цель данного класса очень проста: как можно больше уменьшить использование SQL при обращении к БД, а также организовать данные в удобный для нас формат.
class DB protected $db_name = 'yourdatabasename'; protected $db_user = 'databaseusername'; protected $db_pass = 'databasepassword'; protected $db_host = 'localhost';
// Открывает соединение к БД. Убедитесь, что // эта функция вызывается на каждой странице public function connect() < $connection = mysql_connect($this->db_host, $this->db_user, $this->db_pass); mysql_select_db($this->db_name); return true; >
// Берет ряд mysql и возвращает ассоциативный массив, в котором // названия колонок являются ключами массива. Если singleRow - true, // тогда выводится только один ряд public function processRowSet($rowSet, $singleRow=false) < $resultArray = array(); while($row = mysql_fetch_assoc($rowSet)) < array_push($resultArray, $row); >if($singleRow === true) return $resultArray[0]; return $resultArray; >
//Выбирает ряды из БД //Выводит полный ряд или ряды из $table используя $where public function select($table, $where) < $sql = "SELECT * FROM $table WHERE $where"; $result = mysql_query($sql); if(mysql_num_rows($result) == 1) return $this->processRowSet($result, true); return $this->processRowSet($result); >
//Вносит изменения в БД public function update($data, $table, $where) < foreach ($data as $column =>$value) < $sql = "UPDATE $table SET $column = $value WHERE $where"; mysql_query($sql) or die(mysql_error()); >return true; >
//Вставляет новый ряд в таблицу public function insert($data, $table) $columns = ""; $values = ""; foreach ($data as $column => $value) < $columns .= ($columns == "") ? "" : ", "; $columns .= $column; $values .= ($values == "") ? "" : ", "; $values .= $value; >
$sql = "insert into $table ($columns) values ($values)"; mysql_query($sql) or die(mysql_error());
//Выводит ID пользователя в БД. return mysql_insert_id(); > >
?>
Объяснение кода
После создания класса Вы видите 4 переменные: $db_name, $db_user, $db_pass, и $db_host. В них необходимо внести данные для подключения к БД. $db_host обычно localhost. Перед этими переменными указано «protected» — это означает, что они будут не доступны вне этого класса. Внутри же класса их можно выводить используя $this->db_name, $this->db_user, и т.д.
Первая функция называется connect(). Эта функция содержит защищенные значения для соединения с БД. Это соединение будет открыто для использования в любом месте текущей страницы (не только внутри класса).
Вот пример использования этой функции вне класса:
Вторая функция называется processRowSet(). Цель данной функции — взять объект результата mysql и конвертировать его в ассоциативный массив, в котором ключами являются название колонок. Функция проходит по каждому ряду и функция mysql_fetch_assoc() преобразовывает каждый ряд в массив. Ряд далее передается массиву и возвращается с помощью функции.
Существует второй аргумент $singleRow, который содержит значение по умолчанию. Если значение true, выводится только один ряд вместо массива. Это очень полезно, если Вы ожидаете получить один результат (например, при выборе юзера из БД используя уникальный id).
Последние 3 функции выполняют простые функции MySQL: select, insert, update. Цель данных функций минимизировать количество SQL кода, который необходимо использовать где-либо в другом месте приложения. Каждая функция создает SQL запрос на основе переданного значения и выполняет этот запрос. В случае select(), результаты форматируются и выводятся. В случае update(), выводится true при успешном выполнении. В случае insert(), выводится id нового ряда.
Вот пример как Вы можете изменить данные пользователя в БД используя функцию update():
$db = new DB(); $data = array( "username" => "'johndoe'", "email" => "'johndoe@email.com'" );
//Найти юзера с в БД и внести изменения в ряд //username - johndoe и e-mail - johndoe@email.com $db->update($data, 'users', 'id = 3');
Вот и все на сегодня! До следующих частей!
Вторая часть урока тут, третья — тут
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.buildinternet.com
Перевел: Максим Шкурупий
Урок создан: 14 Декабря 2009
Просмотров: 243551
Правила перепечатки
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 с классами и объектами
Sajal Soni Last updated Dec 4, 2018
В этой статье мы исследуем основы объектно-ориентированного программирования на PHP. Начнем с введения в классы и объекты, а во второй половине статьи обсудим несколько продвинутых понятий, таких как наследование и полиморфизм.
Что такое объектно-ориентированное программирование (ООП)?
Объектно-ориентированное программирование, обычно называемое ООП — это подход, который вам помогает разрабатывать сложные приложения таким образом, чтобы они легко поддерживались и масштабировались в течение длительного времени. В мире ООП реальные понятия Person , Car или Animal рассматриваются как объекты. В объектно-ориентированном программировании вы взаимодействуете с вашим приложением, используя объекты. Это отличается от процедурного программирования, когда вы, в первую очередь, взаимодействуете с функциями и глобальными переменными.
В ООП существует понятие «class», использываемое для моделирования или сопоставления реального понятия с шаблоном данных (свойств) и функциональных возможностей (методов). «Оbject» — это экземпляр класса, и вы можете создать несколько экземпляров одного и того же класса. Например, существует один класс Person , но многие объекты person могут быть экземплярами этого класса — dan , zainab , hector и т. д.
Например, для класса Person могут быть name , age и phoneNumber . Тогда у каждого объекта person для этих свойств будут свои значения.
Вы также можете определить в классе методы, которые позволяют вам манипулировать значениями свойств объекта и выполнять операции над объектами. В качестве примера вы можете определить метод save , сохраняющий информацию об объекте в базе данных.
Что такое класс PHP?
Класс — это шаблон, который представляет реальное понятие и определяет свойства и методы данного понятия. В этом разделе мы обсудим базовую анатомию типичного класса PHP.
Лучший способ понять новые концепции — показать это на примере. Итак, давайте рассмотрим в коде класс Employee , который представляет объект служащего.
Разработка приложений ооп php
Частная коллекция качественных материалов для тех, кто делает сайты
- Creativo.one2000+ уроков по фотошопу
- Фото-монстр300+ уроков для фотографов
- Видео-смайл200+ уроков по видеообработке
- Жизнь в стиле «Кайдзен» Техники и приемы для гармоничной и сбалансированной жизни
В этом разделе перечислены все уроки без разделения по рубрикам.
Выбирайте тот урок, который интересует Вас больше всего на данный момент. К каждому уроку Вы можете оставить свой комментарий, а также проголосовать.
Как выбрать хороший хостинг для своего сайта?
Выбрать хороший хостинг для своего сайта достаточно сложная задача. Особенно сейчас, когда на рынке услуг хостинга действует несколько сотен игроков с очень привлекательными предложениями. Хорошим вариантом является лидер рейтинга Хостинг Ниндзя — Макхост.
Создан: 15 Апреля 2020 Просмотров: 10583 Комментариев: 0
Как разместить свой сайт на хостинге? Правильно выбранный хороший хостинг — это будущее Ваших сайтов
Проект готов, Все проверено на локальном сервере OpenServer и можно переносить сайт на хостинг. Вот только какую компанию выбрать? Предлагаю рассмотреть хостинг fornex.com. Отличное место для твоего проекта с перспективами бурного роста.
Создан: 23 Ноября 2018 Просмотров: 18135 Комментариев: 0
Разработка веб-сайтов с помощью онлайн платформы Wrike
Создание вебсайта — процесс трудоёмкий, требующий слаженного взаимодействия между заказчиком и исполнителем, а также между всеми членами коллектива, вовлечёнными в проект. И в этом очень хорошее подспорье окажет онлайн платформа Wrike.
Почему WordPress лучше чем Joomla ?
Этот урок скорее всего будет психологическим, т.к. многие люди работают с WordPress и одновременно с Joomla, но не могут решится каким CMS пользоваться.
Создан: 26 Августа 2017 Просмотров: 28574 Комментариев: 0
Про шаблоны WordPress
После установки и настройки движка нам нужно поработать с дизайном нашего сайта. Это довольно долгая тема, но мы постараемся рассказать всё кратко и ясно.
Создан: 3 Августа 2017 Просмотров: 26529 Комментариев: 0
Анимация набора текста на jQuery
Сегодня мы бы хотели вам рассказать о библиотеке TypeIt — бесплатном jQuery плагине. С её помощью можно имитировать набор текста. Если всё настроить правильно, то можно добиться очень реалистичного эффекта.
Самые первые настройки после установки движка WordPress
Сегодня мы вам расскажем какие первые настройки нужно сделать после установки движка WordPress. Этот урок будет очень полезен для новичков.