- •Занятие 1. "Быстрый старт: организация рабочего места веб-разработчика. Создание и запуск первого проекта"
- •Установка и настройка пакета Denwer
- •Установка среды разработки Eclipse для php
- •Создание и запуск веб-проекта php
- •Добавление php кода к веб-проекту
- •Занятие 2. "Технология верстки веб-страницы: изучениеHtml"
- •Предназначение html иCss
- •Вспомним основные тегиHtml
- •Правила записиHtml-кода
- •Занятие 3. "Технология верстки веб-страницы: изучениеCss"
- •Несколько слов оCss
- •Основы css
- •Посмотрим на результат в браузере (см. Рис. 3.5)
- •Селекторы css
- •Селектор по идентификатору:
- •Селектор по классу:
- •Основной способ подключения css
- •Основные csSстили
- •Из списка стандартных цветов.
- •При помощи указания компонентов цвета: rgb, в этом случае перед компонентами цвета ставится символ "#" – решетка.
- •Проект "Винни-Пух и компания"
- •Технология создания крупного проекта
- •Реализация клиентской части на Java
- •Title - указывается название колонки;
- •Галочка editable - включает/отключает возможность редактирования ячеек колонки пользователем;
- •Галочка resizable - включает/отключает возможность изменения ширины колонки пользователем (см. Рис. Тот же).
- •Обмен данными с сайтом
- •Занятие 5. "Начало создания серверной части проекта"Винни-Пух и компания"
- •Создание серверной части проекта на php
- •Кодировка проектаUtf-8
- •Обработка get-запроса вPhp
- •Работа с MySql изPhp
- •Занятие 6. "Завершение создания php-скрипта для приема данных от клиентской части на Java"
- •ФормированиеSql-запросов из php
- •Занятие 7. "Верстка основного каркаса сайта интернет-магазина"
- •Методики верстки
- •При большой вложенности таблиц друг в друга снижается скорость загрузки страницы браузером.
- •Индексация страницы поисковой системой происходит сложнее, что влияет на оптимизацию сайта для поисковых систем(сайт хуже находится).
- •При открытии страницы в старых браузерах страница может отображаться не корректно –старый браузер не поддерживает современные css- свойства.
- •Типы верстки
- •Верстка основного каркаса сайта
- •Изучение верстки других сайтов
- •Занятие 8. "Создание главного меню и раздела описания товаров"
- •Создание таблицы описания товаров
- •Формирование верхнего горизонтального меню
- •Создание белой прямоугольной области
- •Получение описания товаров из базы данных и вывод на веб-страницу
- •Занятие 9 "Создание левой и правой боковой части страницы"
- •Создание таблицы дляHtml-разметки
- •Программирование пунктов меню
- •Получение html-разметки из базы данных
- •Создание левой боковой части страницы
- •Использование Flash на веб-странице
- •Создание правой боковой части страницы
- •Занятие 10. "ПодключениеJavaScript. Создание разделов сайта: Главная и Контакты"
- •Реализация раздела сайта: Главная
- •Реализация раздела сайта: Контакты
- •Немного оJavaScript
- •Создание эффекта подмены изображения
- •Создание эффекта появления изображения
- •Занятие 11. "Создание раздела сайта: Заказать"
- •Создание верхней части раздела
- •Отправка и получение данных с веб-страницы
- •Использование файлов для хранения данных
- •Открытие файла для записи/чтения;
- •Запись/Чтение;
- •Закрытие файла.
- •Создание функции для получения и сохранения данных
- •Создание таблицы и формы отправки данных
- •Создание тегов для верхней части таблицы с заголовком.
- •Создание функции формирования десяти строк таблицы с остатками.
- •В заключение внешний вид подкорректируем при помощи css.
- •Занятие 12. "Отладка проекта"
- •Кросс-браузерная отладка
- •Посмотреть сайт на различных разрешениях экрана. Для этого необходимо изменять текущее разрешение экрана.
- •/*Вертикальное выравнивание по верхней части*/
- •Создание дополнительных настроек в тегахHead
- •Перенос сайта на веб-сервер
- •Выгрузка базы данных с исходного компьютера.
- •Загрузка базы данных на веб-сервер.
- •Проверка взаимодействия с клиентской частью наJava
- •Заключение
- •Постановка задачи(логическое описание проекта):
- •Техническое описание проекта:
Обработка get-запроса вPhp
Когда мы создавали клиентскую часть нашего проекта на Java, то говорили о понятии GET-запроса. Именно при помощи GET-запроса мы отправляли данные на серверную частьPHP. В таком виде мы отправляли GET-запрос из Java:
?tov1=10&tov2=20&tov3=30&tov4=40&tov5=0&tov6=0&tov7=0&tov8=0&tov9=0&tov10=90&
Всего передаются десять параметров, значение каждого параметра–это количество поступившего товара. Это значит, что этот GET-запрос мы должны обработать изPHP. ДанныйGET-запрос изJava передавался по адресу http://puh/tovar.php.Вспомним программный кодJava, который мы писали для этих целей:
// Формируем GET-запрос для отправки
String str = "http://puh/tovar.php"+makeGet();
Страницу tovar.php мы уже добавили к нашему проекту, давайте перейдем на нее и запишем теги для написания PHPкода (см. рис. 5.23):
<?php
?>
Рис. 5.15
Весь дальнейший программный код на текущем занятии мы будем вводить в файле нашего проектаtovar.php!
Добавим одну строчкуPHP-кода:
<?php
echo "Привет! PHP";
?>
Команда echo выводит данные на страницу. Сохраним изменения в проекте,откроем браузер и в адресной строке введем:http://puh/tovar.php.Нажмем клавишу Enterи увидим результат(см. рис. 16):
Рис. 5.16
Все работает нормально,русские буквы отображаются правильно!
Обратите внимание, что на этот раз мы указали не только название сайта puh, но и имя конкретной страницы -http://puh/tovar.php. Для запуска любой страницы, кроме index.php –нужно указывать явно имя страницы!
В дальнейшем, как и обычно, не будем закрывать окно браузера, а будем нажимать клавишу F5 для обновления результата.
Для обработки параметров, переданных через GET-запрос в PHP,существует специальный массив - $_GET.
Вспомним!!! Название любой переменной, в том числе и массива, в PHPначинается с символа доллара ($)!
Чтобы получить значение параметра GET-запроса по его имени достаточно в квадратных скобках массива указать имя параметра в кавычках: $_GET["tov1"].
Изменим наш PHP-код на следующий:
<?php
echo $_GET["tov1"];
?>
Теперь на страницу будет выводиться значение параметра с именем: tov1. Перейдем в браузер и в адресной строке введем: http://puh/tovar.php?tov1=17. Адрес страницы остался тем же, а после адреса добавился GET-запрос с одним параметром под именем tov1.Нажмем клавишуEnter –увидим результат(см. рис. 5.17):
Рис. 5.17
Получилось следующее:код PHP обработал параметр из GET-запроса и его значение вывел на страницу. Таким образом,GET-запрос можно передать странице через ссылку в адресной строке браузера. Это один из способов передачи данных на веб-страницу. Мы уже программировали процесс передачи данных при создании клиентской части на языке Java.Результат и в том, и в другом случае получается одинаковым –страница tovar.php получает данные и может их обработать.
При открытииPHP-страницы, ее программный код, записанный внутри тегов <?php ?> начинает выполняться как обычная программа!
Напомним, что язык программирования PHP имеет такой же синтаксис, как иJava. Однако,между ними имеются определенные отличия.некоторые из них мы рассмотрели на самом первом занятии.
Рассмотрим еще одно отличие –сложение строк (конкатенация) обозначается в PHPсимволомточка(.). В Javaдля этого применяется символплюс(+). Ниже приведены примеры сложения строк в Javaи PHP:
//Сложение строк в PHP
$str = "Hello! "."PHP";
//Сложение строк в Java
String str = "Hello! "+"Java";
Из клиентской части нам передается GET-запрос. Прежде чем обработать эти данные, необходимо проверить его формат и убедиться, что имеются параметры с названием "tov.." и наличием хотя бы одного значения,отличного от нуля. Когда передаются все нулевые значения –нам не нужно обрабатывать такой запрос!
Удалим нашу проверочную строку:
<?php
echo $_GET["tov1"];
?>
А вместо нее запишем кодPHP для проверки:
<?php
// Если есть данные вGET-запросе
if ($_GET)
{
// ВЫПОЛНЯЕМ ПРОВЕРКУ ФОРМАТА GET-ЗАПРОСА
// Флаг проверки данных в GET-запросе
$flag = false;
// Цикл, выполняющий десять шагов
for ($i=1;$i<=10;$i++)
{
// Переменная для имени параметра
$tmp = "tov".$i;
// Если такой параметр передан в GET-запросе
if ($_GET[$tmp])
{
// Меняем значение флага
$flag=true;
// Прерываем цикл
break;
}
}
// Если формат GET-запроса оказался верным
if ($flag)
{
echo "Формат верный!";
}
}
?>
Конструкция:
if ($_GET)
вернет значение true, если массив $_GET содержит данные,т.е. имеются параметры GET-запроса.
Переменной flag изначально присваивается значение falseи меняется на true, если найден хотя бы один параметр в GET-запросе с названием на tov и значением отличным от нуля. В этом случае мы выводим проверочную фразу: "Формат верный".
Цикл for выполняет десять шагов, значения переменной $iизменяется от 1 до 10, т.к. это связано с тем, что наши параметры имеют имена: tov1, tov2, … , tov10.
Переменная $tmpна каждом шаге цикла будет принимать значения: tov1, tov2, … , tov10 в результате сложения строк. Далее значение переменной $tmp будет подставляться в конструкциюif ($_GET[$tmp]). Это равносильно записи: $_GET["tov1"],…, $_GET["tov10"]. Конструкция:if ($_GET[$tmp]) вернет значение trueв том случае, если параметр с таким именем действительно имеется в GET-запросе и имеет ненулевое значение.
Если находим хотя бы одно такое значение –меняем значение переменной- flag, и прерываем цикл.
Перейдем в браузер и введем в адресной строке следующее:
http://puh/tovar.php?name=Вася&famil=Петров
Нажмем клавишу Enter –на странице ничего не появилось (см. рис.5.18):
Рис. 5.18
Это означает, что данныйGET-запрос не прошел проверку! И это правильно, потому что данный GET-запрос содержит совершенно другие параметры: name иfamil.
Теперь введем правильный GET-запрос в адресную строку браузера:http://puh/tovar.php?tov1=100&tov2=200.
Нажимаем Enter и видим, что на странице появилось сообщение:Формат верный! Наша проверка работает правильно.
Мы не проверяем количество переданных параметров, так как из клиентской части на Javaмы всегда отправляем именно десять параметров.
Изучая язык программирования Java, мы знакомились с понятием метода класса. ВPHP тоже можно создавать классы, но в отличие от Java, в PHPметод может находиться вне класса, т.е. без класса. Такой метод называется функцией. Принцип работы функции такой же, как и у метода. При вызове функциивыполняется программный код,расположенный внутри фигурных скобокфункции. Записьфункции начинается со служебного словаfunction. Например:
function func()
{
}
В данном случае имя функции: func.
В верхней части нашего кода добавим функцию, вывод сообщения перенесем в эту функцию и получим следующее:
function runMySQL()
{
echo "Формат верный!";
}
Внимание!!!Подсветка кода для PHP работает по тем же принципам, как и в Java! Комбинация клавиш вызывает вспомогательное окно подсветки программного кода.
На то место, где был вывод сообщения – вставим вызов функции:
// Если формат GET-запроса оказался верным
if ($flag)
{
runMySQL();
}
Теперь, в случае успешной проверки вызывается функцияrunMySQL(), а при ее вызове –выполняется программный код в ее фигурных скобках.
Функция runMySQL() будетвыполнять запись данных в базу MySQLи возвращать ответ клиентской части на Java в виде остатков товаров, в формате:
10~20~30~40~50~60~70~80~90~100
Это и есть данные,которые мы получали из Java, а потом выводили в таблицу, в колонку остатков товаров. Вывод сообщения о правильном формате удалим:
function runMySQL()
{
}
Это было временное сообщение на момент проверки.
