Скачать пример web приложения на php
Уроки PHP и MySQL. Урок 5. Формы и базы данных в web
Урок посвящен языку PHP и базе данных MySQL. Рассматривается взаимодействие PHP и MySQL, способы занесения данных из формы в базу данных и вывод данных из базы на web-страницу.
В данном уроке PHP и MySQL Вам предстоит решить следующие задачи:
1. Создать базу данных, содержащую две таблицы: справочник пород кошек, таблицу сведений о потерявшихся животных.
2. Создать web-страницу, на которых будут размещена форма для подачи объявлений о потерявшихся кошках. Данные из этих объявлений заносятся в соответствующую таблицу сведений о потерявшихся животных.
3. Создать web-страницу, позволяющую просматривать информацию из базы данных. Данные в таблицы базы данных будут вноситься из объявлений, размещенных посетителями на сайте.
Задание № 1. Создание базы данных
Наши уроки PHP и MySQL начнем с создания базы данных.
Сначала необходимо создать таблицу-справочник пород и таблицу сведений о потерявшихся животных. Структура таблиц следующая:
Имя поля | Тип поля | Описание | |
идентификационный номер породы | id | Числовой | |
название породы | name_por | Символьный | |
характеристика породы | describe_por | Символьный | В поле хранится имя файла, который содержит описание породы и фотографию. |
Сведения о потерявшихся кошках
Имя поля | Тип поля | Описание | |
идентификационный номер кошки | id | Числовой | |
порода | por | Символьный | |
дата нахождения кошки: день месяц год | day month year | Символьный Символьный Символьный | |
место нахождения кошки | place | Символьный | |
пол кошки | pol | Символьный | |
возраст кошки | age | Символьный | Если возможно указать примерный возраст |
описание кошки | outline | Символьный | Окрас, состояние здоровья и т. д. |
координаты нашедшего | contact | Символьный | Любая контактная информация: телефон, e-mail, адрес |
дополнительная информация | dop_info | Символьный | Например, кошка больна, есть клеймо, кормящая и пр. |
В наших уроках PHP и MySQL рассмотрим два способа создания таблицы базы данных.
1. С помощью клиента MySQL.
2. Средствами PHP.
Способ 1. Создание базы данных с помощью клиента MySQL
С помощью клиентской программы MySQL — «phpMyAdmin» создадим таблицу Справочник пород (таблица 1).
1. Запустите Denwer ярлыком Start Denwer.
2. Запустите браузер и перейдите по ссылке http://localhost/. На открывшейся странице в разделе Утилиты запустите: phpMyAdmin — администрирование СУБД MySQL. Запустится программа phpMyAdmin (рис. 1).
3. Создайте новую базу данных. Для этого впишите в поле Создать базу данных имя базы catsdb, кодировку установите utf8_general_ci и нажмите кнопку Создать (рис. 2).
4. Если все было выполнено верно, то будет выведено сообщение об удачном создании базы.
5. Перейдите в базу данных catsdb, нажав соответствующую строку в левой панели (рис. 3).
6. Добавьте в базу данных таблицу Справочник пород, назовите ее: spravpor (структура таблицы и назначение полей приведены в таблице 1 Справочник пород). Для этого:
a. Внесите данные в поле Имя (имя таблицы — spravpor) и Количество столбцов (3), после чего нажмите кнопку ОК (рис. 4).
b. В открывшемся окне заполните данные по структуре таблицы (рис. 5).
c. После заполнения всех полей нажмите Сохранить. Перейдите в таблицу spravpor, нажав соответствующую строку в левой панели (рис. 6).
d. Откроется сама таблица (рис. 7).
Способ 2. Создание базы данных средствами PHP
В данном уроке PHP и MySQL создадим таблицу с помощью сценария PHP, но при этом база данных должна уже быть создана! В листинге 1 приведена программа создания таблицы под именем species средствами PHP. Структура таблицы species аналогична структуре таблицы spravpor.
1. Проанализируйте приведенные в листинге 1 PHP-сценарий и комментарии к нему в файле species.php.
2. Реализуйте код из листинга 1. Для этого:
- скопируйте его в Notepad++
- преобразуйте кодировку файла в utf-8 командой Кодировка – Преобразовать в UTF-8
- сохраните в папку localhost/www под именем species.php
- запустите файл, набрав в адресной строке localhost/species.php
- появится сообщение, что таблица успешно создана (рис. 8).
3. После выполнения сценария убедитесь, что таблица species создана в базе данных catsdb (рис. 9, 10).
Листинг 1. Создание таблицы с помощью сценария PHP (файл species.php)
Комментарии к листингу 1:
1. Здесь адрес сервера MySQL — localhost (такой адрес указывается в случае если работа с базой данных ведется на локальном компьютере или компьютере где располагаются файлы с php-сценариями).
2. Программа на языке PHP обычно вставляется в HTML-текст. Поэтому предусмотрены специальные теги для отделения PHP-текста от HTML .
3. Если PHP-сценарий представляет собой самостоятельный модуль (как в листинге 1), он также должен начинаться с конструкции .
4. Любой файл, содержащий PHP-сценарий, имеет расширение php, независимо от того, встроен сценарий в HTML-текст или полностью написан на PHP.
5. Многострочные комментарии должны начинаться с символов /* и завершаться символами*/. Однострочные комментарии предваряются символами //. Закрывать их не нужно.
6. В языке PHP имя переменной начинается со знака доллара ($), за которым следует собственно имя переменной. В именах переменных различаются верхний и нижний регистры. Имя переменной должно начинаться с буквы или символа подчеркивания, за которыми могут следовать буквы, цифры или знаки подчеркивания. Буквы должны быть из диапазона A—Z.
7. В конце каждого оператора php обязательно ставится точка с запятой.
8. Функции для работы с MySQL имеют префикс mysql_ (см. приложение 2).
В нашем уроке PHP и MySQL, используя программу из листинга 1 в качестве образца, напишите сценарий PHP для создания таблицы сведений о потерявшихся кошках (см. таблицу 2). Таблицу назовите catspotery, а файл сценария catspotery.php. Результат на рис. 11, 12
Добавление записи в базу данных
Мы подготовили таблицы базы данных. Сейчас на web-странице разместим форму подачи объявлений для тех, кто потерял кошку. Задача — обеспечить занесение информации из форм в соответствующие таблицы базы данных.
Примерный вид формы представлен на рис. 13.
При выполнениии данного урока PHP и MySQL создайте web-страницу с формой, как на рис. 13. Сохраните под именем forma_cats.html. В качестве файл-обработчика укажите poter_dobavl.php. Не забывайте о корреляции полей формы и полей соответствующей таблицы в базе данных и кодировка файла должна быть в utf-8 (Кодировка – Преобразовать в UTF-8).
Данные, введенные посетителем, заносятся в соответствующую таблицу базы данных. Имя PHP-сценария, отвечающего за эту операцию, указывается в атрибуте action тега . В листинге 2 приведен код PHP-сценария, осуществляющего подключение к серверу MySQL, выбор базы данных, запрос к базе данных. В данном случае это запрос INSERT, который вставляет данные из формы в базу данных.
1. Используя программу из листинга 2 в качестве образца, напишите PHP-сценарии, осуществляющие вставку записей в таблицы сведений о пропавших кошках.
2. Проверьте работоспособность формы. В базу данных (рис. 14) должна сохраняться информация, введенная в форму (рис. 13).
3. Наполните базу 5-ю записями.
Листинг 2. Занесение данных формы в базу данных (файл poter_dobavl.php)
Извлечение записей из базы данных
В нашем уроке PHP и MySQL Вы реализовали технологию заполнения базы данных.
Теперь необходимо реализовать задачу вывода информации из базы данных. Т.е. необходимо представить на сайте информацию из базы данных в следующем виде:
Код сценария, представленный в листинге 3, выводит информацию из базы данных на web-страницу, в соответствии с рисунком 15.
Листинг 3. Вывод информации из базы данных на Web-страницу. Передача параметров (файл vivod_poter.php)
Изучите код сценария из листинга 3 и реализуйте его. Проверьте работоспособность сценария.
Реализуйте возможность работы со справочником пород spravpor. Для этого:
1. Добавьте к созданной таблице поле foto, в котором будет храниться ссылка на фотографию породы.
2. Используя запросы SQL (рис. 16), заполните базу 3-мя записями про породы кошек (длинношерстные, полудлинношерстные, короткошерстные) (рис. 17). Все необходимые материалы находятся в папке cats.
3. Реализуйте web-страницу, на которую выводятся данные из справочника пород. У каждой породы должна быть фотография.
4. Если скрипт обрезает описание породы, увеличьте длину поля describe_por, чтобы можно было вводить длинные описания.
Уроки PHP и MySQL. Урок 5. Формы и базы данных в web
Урок посвящен языку PHP и базе данных MySQL. Рассматривается взаимодействие PHP и MySQL, способы занесения данных из формы в базу данных и вывод данных из базы на web-страницу.
В данном уроке PHP и MySQL Вам предстоит решить следующие задачи:
1. Создать базу данных, содержащую две таблицы: справочник пород кошек, таблицу сведений о потерявшихся животных.
2. Создать web-страницу, на которых будут размещена форма для подачи объявлений о потерявшихся кошках. Данные из этих объявлений заносятся в соответствующую таблицу сведений о потерявшихся животных.
3. Создать web-страницу, позволяющую просматривать информацию из базы данных. Данные в таблицы базы данных будут вноситься из объявлений, размещенных посетителями на сайте.
Задание № 1. Создание базы данных
Наши уроки PHP и MySQL начнем с создания базы данных.
Сначала необходимо создать таблицу-справочник пород и таблицу сведений о потерявшихся животных. Структура таблиц следующая:
Имя поля | Тип поля | Описание | |
идентификационный номер породы | id | Числовой | |
название породы | name_por | Символьный | |
характеристика породы | describe_por | Символьный | В поле хранится имя файла, который содержит описание породы и фотографию. |
Сведения о потерявшихся кошках
Имя поля | Тип поля | Описание | |
идентификационный номер кошки | id | Числовой | |
порода | por | Символьный | |
дата нахождения кошки: день месяц год | day month year | Символьный Символьный Символьный | |
место нахождения кошки | place | Символьный | |
пол кошки | pol | Символьный | |
возраст кошки | age | Символьный | Если возможно указать примерный возраст |
описание кошки | outline | Символьный | Окрас, состояние здоровья и т. д. |
координаты нашедшего | contact | Символьный | Любая контактная информация: телефон, e-mail, адрес |
дополнительная информация | dop_info | Символьный | Например, кошка больна, есть клеймо, кормящая и пр. |
В наших уроках PHP и MySQL рассмотрим два способа создания таблицы базы данных.
1. С помощью клиента MySQL.
2. Средствами PHP.
Способ 1. Создание базы данных с помощью клиента MySQL
С помощью клиентской программы MySQL — «phpMyAdmin» создадим таблицу Справочник пород (таблица 1).
1. Запустите Denwer ярлыком Start Denwer.
2. Запустите браузер и перейдите по ссылке http://localhost/. На открывшейся странице в разделе Утилиты запустите: phpMyAdmin — администрирование СУБД MySQL. Запустится программа phpMyAdmin (рис. 1).
3. Создайте новую базу данных. Для этого впишите в поле Создать базу данных имя базы catsdb, кодировку установите utf8_general_ci и нажмите кнопку Создать (рис. 2).
4. Если все было выполнено верно, то будет выведено сообщение об удачном создании базы.
5. Перейдите в базу данных catsdb, нажав соответствующую строку в левой панели (рис. 3).
6. Добавьте в базу данных таблицу Справочник пород, назовите ее: spravpor (структура таблицы и назначение полей приведены в таблице 1 Справочник пород). Для этого:
a. Внесите данные в поле Имя (имя таблицы — spravpor) и Количество столбцов (3), после чего нажмите кнопку ОК (рис. 4).
b. В открывшемся окне заполните данные по структуре таблицы (рис. 5).
c. После заполнения всех полей нажмите Сохранить. Перейдите в таблицу spravpor, нажав соответствующую строку в левой панели (рис. 6).
d. Откроется сама таблица (рис. 7).
Способ 2. Создание базы данных средствами PHP
В данном уроке PHP и MySQL создадим таблицу с помощью сценария PHP, но при этом база данных должна уже быть создана! В листинге 1 приведена программа создания таблицы под именем species средствами PHP. Структура таблицы species аналогична структуре таблицы spravpor.
1. Проанализируйте приведенные в листинге 1 PHP-сценарий и комментарии к нему в файле species.php.
2. Реализуйте код из листинга 1. Для этого:
- скопируйте его в Notepad++
- преобразуйте кодировку файла в utf-8 командой Кодировка – Преобразовать в UTF-8
- сохраните в папку localhost/www под именем species.php
- запустите файл, набрав в адресной строке localhost/species.php
- появится сообщение, что таблица успешно создана (рис. 8).
3. После выполнения сценария убедитесь, что таблица species создана в базе данных catsdb (рис. 9, 10).
Листинг 1. Создание таблицы с помощью сценария PHP (файл species.php)
Комментарии к листингу 1:
1. Здесь адрес сервера MySQL — localhost (такой адрес указывается в случае если работа с базой данных ведется на локальном компьютере или компьютере где располагаются файлы с php-сценариями).
2. Программа на языке PHP обычно вставляется в HTML-текст. Поэтому предусмотрены специальные теги для отделения PHP-текста от HTML .
3. Если PHP-сценарий представляет собой самостоятельный модуль (как в листинге 1), он также должен начинаться с конструкции .
4. Любой файл, содержащий PHP-сценарий, имеет расширение php, независимо от того, встроен сценарий в HTML-текст или полностью написан на PHP.
5. Многострочные комментарии должны начинаться с символов /* и завершаться символами*/. Однострочные комментарии предваряются символами //. Закрывать их не нужно.
6. В языке PHP имя переменной начинается со знака доллара ($), за которым следует собственно имя переменной. В именах переменных различаются верхний и нижний регистры. Имя переменной должно начинаться с буквы или символа подчеркивания, за которыми могут следовать буквы, цифры или знаки подчеркивания. Буквы должны быть из диапазона A—Z.
7. В конце каждого оператора php обязательно ставится точка с запятой.
8. Функции для работы с MySQL имеют префикс mysql_ (см. приложение 2).
В нашем уроке PHP и MySQL, используя программу из листинга 1 в качестве образца, напишите сценарий PHP для создания таблицы сведений о потерявшихся кошках (см. таблицу 2). Таблицу назовите catspotery, а файл сценария catspotery.php. Результат на рис. 11, 12
Добавление записи в базу данных
Мы подготовили таблицы базы данных. Сейчас на web-странице разместим форму подачи объявлений для тех, кто потерял кошку. Задача — обеспечить занесение информации из форм в соответствующие таблицы базы данных.
Примерный вид формы представлен на рис. 13.
При выполнениии данного урока PHP и MySQL создайте web-страницу с формой, как на рис. 13. Сохраните под именем forma_cats.html. В качестве файл-обработчика укажите poter_dobavl.php. Не забывайте о корреляции полей формы и полей соответствующей таблицы в базе данных и кодировка файла должна быть в utf-8 (Кодировка – Преобразовать в UTF-8).
Данные, введенные посетителем, заносятся в соответствующую таблицу базы данных. Имя PHP-сценария, отвечающего за эту операцию, указывается в атрибуте action тега . В листинге 2 приведен код PHP-сценария, осуществляющего подключение к серверу MySQL, выбор базы данных, запрос к базе данных. В данном случае это запрос INSERT, который вставляет данные из формы в базу данных.
1. Используя программу из листинга 2 в качестве образца, напишите PHP-сценарии, осуществляющие вставку записей в таблицы сведений о пропавших кошках.
2. Проверьте работоспособность формы. В базу данных (рис. 14) должна сохраняться информация, введенная в форму (рис. 13).
3. Наполните базу 5-ю записями.
Листинг 2. Занесение данных формы в базу данных (файл poter_dobavl.php)
Извлечение записей из базы данных
В нашем уроке PHP и MySQL Вы реализовали технологию заполнения базы данных.
Теперь необходимо реализовать задачу вывода информации из базы данных. Т.е. необходимо представить на сайте информацию из базы данных в следующем виде:
Код сценария, представленный в листинге 3, выводит информацию из базы данных на web-страницу, в соответствии с рисунком 15.
Листинг 3. Вывод информации из базы данных на Web-страницу. Передача параметров (файл vivod_poter.php)
Изучите код сценария из листинга 3 и реализуйте его. Проверьте работоспособность сценария.
Реализуйте возможность работы со справочником пород spravpor. Для этого:
1. Добавьте к созданной таблице поле foto, в котором будет храниться ссылка на фотографию породы.
2. Используя запросы SQL (рис. 16), заполните базу 3-мя записями про породы кошек (длинношерстные, полудлинношерстные, короткошерстные) (рис. 17). Все необходимые материалы находятся в папке cats.
3. Реализуйте web-страницу, на которую выводятся данные из справочника пород. У каждой породы должна быть фотография.
4. Если скрипт обрезает описание породы, увеличьте длину поля describe_por, чтобы можно было вводить длинные описания.
PHP веб приложение
Настройка приложения
Пример выложен на github php_sdk_example
Покажем, как написать простое PHP-приложение, использующее API одноклассников при помощи SDK. В примере будет показано, как сделать авторизацию в приложении и вызвать несколько простых методов.
Первым делом необходимо создать приложение. На email разработчика должно прийти письмо с данными о приложении.
Для корректной работы приложения необходимо записать параметры приложения в соответствующие им переменные: $app_id, $app_public_key, $app_secret_key, $redirect_url.
Далее нам понадобятся следующие данные:
- APP_ID (Application ID)
- APP_PUBLIC_KEY (Публичный ключ приложения)
- APP_SECRET_KEY (Секретный ключ приложения)
1. Подготовка
В первую очередь следует скачать наше SDK в любую удобную директорию и добавить следующий код перед первым использованием SDK:
В директиве require требуется указать ваш путь к файлу с SDK.
Данный код подключает SDK и проверяет, доступна ли необходимая для работы библиотека libcurl.
Если библиотека недоступна, то необходимо ее установить. Процесс установки описан, например, здесь.
2. Авторизация
Авторизация происходит по методу OAuth 2.0. Алгоритм подразумевает несколько этапов:
- На первом этапе необходимо удобным для вас способом перенаправить пользователя по ссылке OAuth.
- По данной ссылке пользователь проходит авторизацию и разрешает приложению производить запрошенные действия. В случае успеха происходит переадресация пользователя на заданный redirectUrl, в параметрах передается code.
- Получить код можно используя функцию getCode(). В случае, если параметр отсутствует, функция вернет null.
- Если код получен, следует обменять его на токен доступа, используя функцию changeCodeToToken($code). Функция вернет true, если токен получен, false, если не получен.
В случае возникновения ошибки “токен истек” следует попробовать обновить токен, используя функцию updateAccessTokenWithRefreshToken(). Данная функция возвращает true в случае успеха, false в случае неудачи.
Если данная функция возвращает false, то для получения токена доступа необходимо провести авторизацию заново.
Пример проведения авторизации:
3. Вызов метода
Для вызова метода API следует воспользоваться методом SDK makeRequest($methodName, $parameters = null).
Данная функция принимает на вход 1 или 2 параметра — название метода и ассоциативный массив (имя_параметра => значение), если параметры требуются.
В общем случае функция возвращает ассоциативный массив запрошенных данных. В случае некорректно переданных данных (например, второй параметр не является массивом или null), функция возвращает null.
Пример вызова функции:
В случае, если сервер вернет ошибку, возвращенный функцией ассоциативный массив будет содержать код и описание ошибки.