- PVSM.RU - https://www.pvsm.ru -
Привет! В статье хотел поделится то как я сделал свой framework за вечер используя уже готовые библиотеки!
Данная статья будет полезна начинающим php программистам, так как делал все как можно проще без лишних наворотов!
Поздний вечер, от скуки я зашел на почту, с утра приходила рассылка для разработки одного проекта! Ответил, пришло ответное письмо с тестовым заданием!
И комментариями:
Сделайте данную задачу с использованием ООП, возможно какие-нибудь паттерны программирования сможете внедрить, а также данный скрипт должен с легкостью дорабатываться, если потребуется расширить его функционал!
1. Есть агентство, которое поздравляет клиентов с государственными праздниками. При этом клиенты с каждым праздником поздравляются не все, а выборочно. С праздниками по половым признакам поздравляется только клиенты соответствующего пола. О клиентах известны: ФИО, email, адрес, пол. О праздниках известны: дата и название. Предложите структуру БД, где хранится информация о клиентах, информация о праздниках, и информация о том, кто с каким праздником был поздравлен.
2. Напишите пример SQL запроса, отбирающий девушек, не поздравленных в настоящий момент с 8 марта, но поздравленных с новым годом.
3. Теперь Вам нужно скинуть информацию о клиентах дружеской конторе в виде xml. Информацию о том, кто с каким праздником поздравлялся/не поздравлялся, скидывать не надо. Напишите скрипт, который по имеющейся базе данных строит xml-файл с информацией о клиентах фирмы.
4. Ниже приведен код, реализующий во фронтэнде сайта, отправление на сервер данных клиента.
Допишите функции валидации формы, отправления данных формы, а также скрипт добавления клиента в имеющуюся базу данных.
После отправки данных, необходимо отобразить результат добавления.
<?php
if (isset($_POST['do_insert'])) {
//добавление данных клиента в БД, email не должен повторяться
//...
}
?>
<html>
<head>
<title>Форма регистрации клиентов</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
var validateForm = function() {
//валидация формы
//все поля формы являются обязательными для заполнения
//...
};
var sendForm = function() {
if (validateForm()) {
//отправление данных формы, используя AJAX методом POST
//...
} else {
return false;
}
};
</script>
</head>
<body>
<div id="insert_result" style="display:none;"></div>
<form name="user" id="user" action="" method="POST" onsubmit="return sendForm();">
<input type="hidden" name="do_insert" value="">
ФИО: <input type="text" name="fio" id="fio" value="" /><br />
Пол: <input type="radio" name="sex" id="male" value="m" /><label for="male">мужской</label>/<input type="radio" name="sex" id="female" value="f" /><label for="female">женский</label><br />
Email: <input type="text" name="email" id="email" value="" /><br />
Адрес: <textarea name="adress" id="adress"></textarea><br />
<input type="submit" value="Отправить" />
</form>
</body>
</html>
смотрю задание, отвечаю, завтра будет готова!
И так как видно из задания все 4 пункта связанны между собой!
соответственно нам потребуется БД, PHP и базовые знания jQuery для того чтоб все работало!
Цель:
Я не буду здесь приводить кучу кода или отрывки, так как это довольна простая задача! Если вас заинтересует скрипт, вы всегда сможете его просмотреть на Github [1].
Да у меня стоит php 5.4 но я старательно писал под php 5.3 так как не у всех еще стоит php4 версии! БД mysql5.5
Карта сайта, она поможет разобраться с функционалом!
[2]
Рисую схему БД, думаю каждый сможет понять что тут происходит без лишних комментарий.
[3]
Вот что у меня получилось, заказчик остался очень доволен и с радостью согласился со мной сотрудничать!
Все картинки кликабельные и ведут на оригинальный размер!
Для того кто хочет поковырять в коде welcome Github [1]
Автор: lesha_firs
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/50984
Ссылки в тексте:
[1] Github: https://github.com/vir-mir/holiday_holiday
[2] Image: http://habr.habrastorage.org/post_images/1da/3b4/b77/1da3b4b77670fb618d9d6ef26d2a8cb3.jpg
[3] Image: http://habr.habrastorage.org/post_images/f90/699/d95/f90699d952d45de2bfa6467d23a2d6a7.jpg
[4] bootstrap 3: http://getbootstrap.com/
[5] Twig: http://twig.sensiolabs.org/
[6] Image: http://habr.habrastorage.org/post_images/e63/b8d/cfa/e63b8dcfa9d1880ebda83691f9cfe903.jpg
[7] Источник: http://habrahabr.ru/post/206314/
Нажмите здесь для печати.