Установка Virtual Box и Vagrant



Прежде всего вы должны установить последнюю версию VirtualBox. На момент написания книги это версия 4.2.18. Вы можете зайти на http://www.virtualbox.org (рис. 6.1), щелкнуть на ссылке Downloads в левой части страницы и скачать соот­ветствующую версию для вашей операционной системы. Загрузка, установка и на­стройка будут зависеть от операционной системы, поэтому внимательно следуйте инструкциям.

Рис. 6.1. Домашняя страница VirtualBox

Затем нужно установить последнюю версию Vagrant (на момент написания книги это версия 1.4). Чтобы получить последнюю версию, зайдите на http://www.vagrantup.com (рис. 6.2), щелкните на ссылке Downloads в верхнем правом углу и скачайте последнюю версию для вашей платформы. После загрузки дважды щелкните на пакете и установите его так же, как и VirtualBox.

Рис. 6.2. Домашняя страница Vagrant

Если вы работаете в Windows, понадобится перезагрузка компьютера, чтобы убедиться в том, что путь ко всем файлам настроен корректно. Вы можете проверить это, открыв командную строку (нажмите кнопку Пуск и введите cmd в строку поис­ка) и введя команду vagrant -version:

C:\Users\semmy>vagrant --version Vagrant version 1.4.0

Если все получилось, вы готовы к работе. Если нет, перезагрузите компьютер и попробуйте ввести команду vagrant снова.

Создание виртуальной машины

Если все получилось, вы готовы к скачиванию хранилища Git под названием node- dev-bootsrap с моей страницы GitHub. Это значит, что вам нужно скачать все со­держимое хранилища Git, которое я создал, на свой компьютер. Если вы работаете в Windows, это потребует от вас открытия командной строки git-bash. В любом случае пройдите в свою папку Projects и скопируйте туда хранилище node-dev- bootstrap с помощью следующей команды:

hostname $ git clone https://github.com/semmypurewal/node-dev-bootstrap Chapter6

Таким образом будет создана папка под названием Chapter6, а хранилище node-dev- bootstrap — скопировано в нее. Затем зайдите в папку и введите команду vagrant up:

hostname $ cd Chapter6 hostname $ vagrant up

Если вы работаете в Windows, то можете увидеть предупреждение брандмауэра, спра­шивающего, может ли программа vboxheadless получить доступ к сети. Вы смело може­те ответить, что да.

Если все прошло хорошо, Vagrant создаст для вас виртуальную машину. Это займет несколько минут. Будьте терпеливы.

Подключение к виртуальной машине с помощью SSH

После того как машина создана, ее можно запустить. Как это проверить? У вас должна быть сетевая технология, называемая SSH (от Secure Shell), с помощью которой можно подключиться к серверу через командную строку.

Если вы используете Mac OS или Linux, это очень просто, так как в вашей плат­форме есть встроенный клиент SSH. Если же работаете в Windows, придется до­полнительно установить клиент SSH.

В любом случае вам следует ввести:

hostname $ vagrant ssh

Если вы работаете в Mac OS, это подключит вас к виртуальной машине. Если же в Windows, это может сработать или не сработать в зависимости от версии. Если способ не работает, Vagrant даст вам данные для доступа (скорее всего, ваш хост будет 127.0.0.1 и порт 2222). Нужно будет скачать клиент SSH, чтобы подключить­ся, — я рекомендую PuTTY, который можно установить со страницы загрузки PuTTY. Домашняя страница PuTTY показана на рис. 6.3.

Запустив PuTTY, введите имя хоста и порт, которые вы получили от Vagrant, в соответствующие поля ввода Host Name и Port (рис. 6.4). Затем щелкните на Open (Открыть). PuTTY подключит вас к виртуальному серверу и запросит имя поль­зователя и пароль. То и другое установлено в Vagrant.

Рис. 6.4. Установка PuTTY для подключения к виртуальной машине


 

Привет, Node.js!

После того как вы подключились, можете работать в командной строке виртуаль­ного компьютера точно так же, как в командной строке на локальном. Например, вы можете вывести на экран содержимое какой-либо папки на виртуальной маши­не тем же способом, каким пользовались на локальной, — с помощью команды ls:

vagrant $ ls app postinstall.sh

Пока не обращайте внимания на файл postinstall.sh. С помощью навыков ра­боты с командной строкой, которые вы получили в предыдущих главах, перейдите в каталог app на вашей виртуальной машине:

vagrant $ cd app vagrant $ ls server.js

Здесь вы должны увидеть файл server.js. Проверим, что все работает правиль­но, начав с команды node:

vagrant $ node server.js

Server listening on port 3000

Вы увидите сообщение Server listening on port 3000 («Сервер слушает на пор­те 3000») и больше не сможете работать с командной строкой из-за того, что сервер запущен. Вы можете убедиться в этом, открыв Chrome и набрав localhost:3000 в адресной строке. Если все работает правильно, вы должны увидеть сообщение «Hello, World!». Оно должно выглядеть так, как показано на рис. 6.5.

Ctrl+C. Окончив работу, можете покинуть виртуальный сервер, введя exit:

vagrant $ exit logout

Connection to 127.0.0.1 closed.

Если вы авторизованы на своей виртуальной машине с помощью PuTTY в Windows, это действие закроет программу. Затем можете вернуться к командной строке, которую вы использовали, чтобы запустить виртуальную машину. Если же вы работаете в MacOS, то немедленно вернетесь к командной строке. В любом случае вы всегда можете остановить сервер, набрав vagrant halt:

hostname $ vagrant halt

[default] Attempting graceful shutdown of VM

Остановка виртуальной машины может понадобиться, если вы не работаете с ней в какой-то момент, но она запущена в фоновом режиме. Виртуальная машина по­требляет очень много ресурсов компьютера. После остановки можете запустить ее снова командой vagrant up.

 

 

Лабораторная работа № 5. Введение в JavaScript

(5 неделя, 2 часа)

 

Цель работы

Ознакомиться с базовым синтаксисом и основными возможностями управления содержимым веб-страницы на стороне клиента. Получить практические навыки написания клиентских скриптов с использованием языка JavaScript.

Задания к работе

Написать скрипт «Tip of the Day» (совет дня). Скрипт должен выводить случайную стро^ («совет») из заданного массива строк. Скрипт разместить во внешнем файле, подключить его на все страницы вашего сайта.

Методические указания

 Динамический HTML

Синтаксис JavaScript

Динамический HTML

HTML является языком разметки и не имеет каких-либо средств, которые могли бы использоваться для изменения содержимого страницы. Эту проблему решает использование языка DHTML (Dynamic HTML), поддерживающего средства программирования на клиентской стороне. Для этого в DHTML встроена поддержка скриптового языка JavaScript (должен поддерживаться браузером).

Возможности динамического управления содержимым становятся доступны при внедрении в веб-страницу кода JavaScript . Это делается с помощью тега script, размещаемого в нужном месте веб-страницы и которым выделяют начало и конец исходного кода или указывают на подгружаемый из сети файл с исходным кодом:

Для внедрения скриптов в веб-до^мент используется контейнерный тег <script>...</script>, внутри которого записываются команды JavaScript (в общем случае и ряда других яыков: VBScript, php, tcl/tk ... ).

Если этот тег ипользуется в теле до^мента (внутри тега body), то исполнение скрипта осуществляется по мере отображения веб-страницы в браузере. Если же контейнер script описан внутри тега head, то обращение к скрипту возможно только явным образом, например, через вызов функции.

<!-- внедрение скрипта в разметку -->

<script type="text/javascript"> код скрипта </script>

Имеется возможность вынести код JavaScript в отдельный файл (как правило с расширением js), который затем подключить к до^менту следующим образом:

<html>

<head>

<!-- загрузка скрипта из внешнего файла -->

<script type="text/javascript"> s rc="http://example.com/scripts.js">

</script>

</head>

Такой способ внедрения скриптов позволяет создавать своего рода библиотеки скриптов и использовать их на всех страницах сайта.

Синтаксис JavaScript

Язык JavaScript синаксически близок к языкам C/C++, Java, PHP и другим C-подобным языкам. Поэтому для тех, кто знаком с такими языками не составит труда разобраться с основными языковыми конструкциями.

Переменные

Для объявления переменных используется ключевое слова var. Переменные можно сразу инициализировать. Можно объявить несколько переменых сразу, разделив их запятыми.

var color = "#FFF", fsize = 1024 , total_count = 0, i; var average = null; var c = 3; d = 0; //Ошибка!

Непроинициализированые переменные будут иметь неопределенное значение (undefined).

Объявлять переменные можно в любом месте скрипта, но до первого обращения

Типы данных переменным в javascript назначаются автоматически. Так же автоматически выполняется приведение типов.

Объявления массивов данных могут выполняться статически и динамически. Индексирование элементов начинается с нуля. Элементы массива могут быть проинициализированы при создании.

var weekdays = ["Пн", "Вт", "Ср", "Чт", "Пт"]; // статический массив из пяти элементов

// динамическое объявление массива путем создание экземпляра встроенного класса Array var myarr;

myarr = new Array(256);

myarr[0] = 255; myarr[1] = 254;

var x = myarr[7];

Операторы

Комментарии - предназначены для пояснения фрагментов кода или исключения фрагментов кода из обработки. Игнорируются при выполнении программы.

// Это однострочный комментарий.

Это многострочный комментарий. Он может объединять несколько строк и его можно использовать в любом месте программы

Условный оператор if предназначен для ветвления программы в зависимости от значения (true | false) логического выражения:

if (условие) {блок операторов1}

[else {блок операторов2}]

Оператор выбора switch также как и условный оператор предназначен для выполнения ветвтления алгоритма, но позволяет анализировать множество возможных результатов проверки условия. Оператор break позволяет прервать выполнение оператора, если его не указать, то будут выполнены все последующие операторы.

switch (условие) {

case значение1 : {блок операторов1; break;}

case значение2 : {блок операторов2; break;}

case значение3 : {блок операторовЗ; break;}

[default : {блок     операторов по умолчанию};]

}

Цикл со счетчиком for. Используется для циклов с заданным числом итераций (примечание: на самом деле конструкция for может использоваться и для построения любых циклов, все зависит от того, как и какие значения указаны в качестве параметров цикла).

for ([начальное значение]; [условие]; [приращение]) {блок операторов;}

Цикл с постусловием do...while. Выполняется, пока условие является истинным. Всегда выполняется хотя бы один раз.

do {блок операторов;} while (условие)

Цикл с предусловием while. Выполняется, если условие является истинным. Может не выполниться ни разу.

while (условие) {блок операторов;}

Операторы break и continue -используются для прерывания выполнения цикла или завершения те^щей итерации.

Поэлементный цикл for (... in ...) применяется для выполнения команд над каждым элементом массива или коллекции.

for (переменная in массив|объект|коллекция) {блок операторов;}

Оператор объединения with представляет обращение к свойствам и методам объекта через общее имя.

with (объект) {блок операторов;}

Функции. Представляют возможность создания повторно используемого кода. Функция может принимать параметры и возвращать значение в вызывающую программу. Если в функции не предусмотрен возврат значения, то она работает как процедура.

function имяФункции ([список параметров]) { блок операторов;

[return возвращаемоеЗначение;]

}

 

Лабораторная работа № 6. Объекты JavaScript

(6-7 неделя, 4 часа)

 

Цель работы

Закрепить и расширить практические знания по программированию на языке javascript. Получить представление об практическом использовании объектной модели веб-до^мента (DOM) и использовании веб-форм.

CAPTCHA (от англ. «Completely Automated Public Turing test to tell Computers and Humans Apart», рус., сленг. - КАПЧА) — полностью автоматизированный публичный тест Тьюринга для различия компьютеров и людей) компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером. Основная идея теста: предложить пользователю та^ю задачу, которую может решить человек, но которую несоизмеримо сложно предоставить для решения компьютеру. В основном это задачи на распознавание символов. CAPTCHA чаще всего используется при необходимости предотвратить использование интернет-сервисов ботами, в частности, для предотвращения автоматических отправок сообщений, регистрации, скачивания файлов, массовых рассылок и т. п.

Задание

Написать скрипт, проверяющий код защиты от автоматического постинга и вырезающий ссылки из формы ввода комментария (на странице отзывов и комментариев)

Пояснение: В ходе выполнения задания требуется написать клиентсткую программу на javascript, которая генерирует арифметический пример, ответ на который должен дать пользователь. Другой вариант — генерация произвольной строки, которую должен воспроизвести пользователь. После того, как пользователь ввел ответ программа должна проверить его правильность. Смысл этого задания не столько в разработке эффективного теста Тьюринга, сколько в освоении javascript.

Указания к работе

 Элементы управления

 Объект document

 События

 Объект RegExp

 Примеры скриптов

Элементы управления

Элементы управления — это интерактивные объекты, позволяющие получить данные от пользователя. Их назначение и внешний вид идентичны элементам пользовательского интерфейса современных операционных систем с графическим интерфейсом (кнопки, поля ввода, чекбоксы и т.п.).

Элемент input

Тэг <input> представляет различные элементы, в зависимости от значения атрибута type (табл.1).

Таблица 1. Типы элементов управления (атрибут type)

Значение type      Описание

Однострочное поле ввода. Используйте атрибуты maxlength и size для определения максимальной длинны вводимого значения в символах и размера отображаемого поля ввода на экране (по умолчанию принимается 20 символов). password  То же самое, что и атрибут text, но вводимое пользователем значение скрыто замещающими символами (звездочки, точки и т.п.).

checkbox   Флажок (маркер множественного выбора). Используется для отметки выбранных вариантов.

Скрытое поле. Не отображается браузером и не дает пользователю изменять присвоенные данному полю значение. Это можно сделать

hidden

только программным путем (или изменением значения поля при передаче данных через адресную строку или в теле запроса). Кнопка-картинка. Позволяет использовать графический рисунок в качестве кнопки. Все значения атрибута value игнорируются. Само

image _     .

описание картинки осуществляется через атрибут src и по синтаксису совпадает с тегом <img>.

Радиокнопка. Позволяет вводить одно значение из нескольких альтернатив. Для создания набора альтернатив вам необходимо создать . несколько полей ввода с атрибутом type="radio" с разными значениями атрибута value, но с одинаковыми значениями атрибута name.

При выборе одного из полей ввода типа radio все остальные поля данного типа с тем же именем (атрибут name) автоматически станут невыбранными на экране.

button Пользовательская кнопка. Должна быть запрограммирована на обработ^ нажатий. Атрибут value содержит текст надписи на кнопке.

Кнопка отправки данных. При ее нажатии будет будет вызван обработчик, описанный в заголовке формы (form action-'scriptname", submit подробнее о теге form - в лабораторной работе №8 ) и ему будут переданы значения всех элементов, описанных в теге form. Атрибут

value содержит текст надписи на кнопке. reset Кнопка сброса. При нажатии ее все поля формы примут значения, заданные по умолчанию.

Атрибуты элемента input

 type — определяет тип поля ввода. По умолчанию равно text.

 name — имя поля ввода. Используется как идентификатор переменной при передаче данных на сервер и для программного обращения к элементу из скрипта javascript.

 id — идентификатор элемента. Должен быть уникальным в пределах веб-до^менга.

 checked — означает, что checkbox или radio будет выбран.

 maxlength — определяет количество символов, которое пользователи могут ввести в поле ввода. При превышении количества допустимых символов броузер реагирует на попытку ввода нового символа звуковым сигналом и не дает его ввести.

 size — определяет визуальный размер поля ввода на экране в символах.

 src — URL, указывающий на картину (используется совместно со значением type="image").

 value — значение по умолчанию или установленное значение.

Элемент textarea

Тэг <textarea> используется для того, чтобы позволить пользователю вводить более одной строки информации (многострочный текст). При передаче значения из textarea сохраняются все символы форматирования (табуляция, перевод строки, возврат каретки).

Атрибуты, используемые с тегом <textarea> задают его размеры (в символах и строках):

 rows — высота поля ввода в символах

 cols — ширина поля ввода в строках

Пример использования тега <textarea>:

<textarea rows=10 cols=50>Москва, Дмитровское шоссе, д.9Б, офис 448</textarea>

Элемент select

Элемент select отображает на странице список выбора, который может быть представлен следующими способами:

 select — выпадающий список.

 select single — развернутый список.

 select multiple — список с множественным выбором.

Примеры описания элемента select:

<select name="group">

<option>nонедельник, среда, пятница</option>

<option> вторник, четверг, суббота</option>

<option> воскресенье</option>

</select>

<select single name="group" size="3">

<option>зима</option>

<option>весна</option>

<option>лето</option>

<option>осень</option>

</select>

Объект document

Объект document это абстрактная структура данных, представляющая полное описание веб-страницы. Набор свойств и методов этого объекта позволяет управлять как поведением веб-страницы целиком, так и отдельных ее объектов (элементов управления, ссылок, текстовых блоков, изображений и т.д.). Доступ к свойствам и методам реализован через стандартные программные интерфейсы (рис. 1).

Рис. 1. Интерфейсы объекта document Свойства объекта Document

 

Начнем со свойств, общих для всех браузеров. Большинство их доступны как для чтения, так и для изменения. Все значения свойств — строковые.

 title — текст заголовка до^мента (содержимое элемента title);

 fgColor и bgColor — цвет текста и цвет фона до^мента;

 linkColor, vLinkColor, aLinkColor — цвета непосещенных, посещенных и активных гиперссылок;

 lastModified (только для чтения) — дата изменения до^мента;

 referrer (только для чтения) — адрес источника перехода;

 URL, location — собственный адрес до^мента.

Более интересны и полезны для разработчика свойства-массивы объекта Document. Все они, естественно, имеют свойство length (количество элементов в массиве). Большинство свойств, специфичных для объектов, хранящихся в этих массивах, ассоциируются с атрибутами соответствующих элементов HTML (список неполный):

 объект Anchor (якорь) имеет единственное свойство name;

 объект Link (ссылка) имеет свойства href, target;

 объект Image (изображение) имеет свойства src, width, height.

К объектам документа, хранящимся в массивах images, controls и прочим, а также к элементам форм можно обращаться по имени (свойство name) или идентификатору (свойство id). Пусть, например, в до^менте имеется описание <img src="images/catjpg" id="cat_id" name="cat_name"> и оно является n-ым изображением, встречающимся в документе. К этому элементу img можно обратиться по крайней мере следующими способами:

 Как к элементу массива images по индексу (индексация начинается с 0): window.document. images[n-1]

 Как к элементу хэш-массива images по ключу (значение name как ключ массива): window.document. images["cat_name"]

 Используя значение атрибута name как свойство объекта: window.document. cat_name

 Используя значение атрибута id и свойство getElementByld: window.document. getElementById("cat_id")

Методы объекта Document

 open() — открывает новый до^мент; при этом все его содержимое удаляется.

 close() — закрывает ранее открытый до^мент.

 write() — записывает в до^мент заданную в качестве аргумента стро^.

 writeln() — аналогичен предыдущему, но выведенная в до^мент строка заканчивается символом перевода строки.

Методы write() и writeln() весьма полезны и часто используются для динамического формирования содержимого документа. Вот как, например, можно включить в документ дату его последнего изменения:

<script>document.write(document.lastModified);</script>

События

Для всех элементов документа имеется возможность отслеживать различные события (загрузка, перемещение мыши, мышеклики и проч.) и вызывать функции обработки таких событий. В таблице 2 приведено краткое описание событий, доступных для использования в программах на javascript:

Таблица 2. События веб-документа

Событие   Описание

OnLoad     Броузер заканчивает открытие документа HTML

OnUnload  Броузер выгружает документ HTML

 

Пользователь щелкнул мышью по элементу

Пользователь дважды щелкнул мышью по элементу

Пользователь нажимает кнопку мыши

Пользователь перемещает мышь поверх элемента

Пользователь перемещает мышь поверх элемента

Пользователь перемещает мышь, выходя из элемента

Элемент получает фокус ввода

Элемент теряет фокус ввода

Пользователь нажимает и отпускает клавишу

Пользователь нажимает клавишу над элементом

Пользователь отпускает клавишу над элементом

Данные из формы переданы Web-серверу

Форма очищена

Пользователь выбирает текст в текстовом поле

Потеря фокуса ввода элементом после изменения его значения

 

Назначение обработчика события выполняется путем указания имени события в виде атрибута тега, например так:

<a name="test" onClick="alert('Hello, world!');">say "Hello"</a>

При использовании событий, следует понимать, что не каждый элемент может породить определенное событие. Например в следующем примере вызов функции resetAll не произойдет, поскольку элемент <a>, никогда не породит событие onReset;

<script>

function resetAll() {

// do something }

</script>

<a href="clear.htm" onReset="resetAll();">Сброс</a>

 

 

Лабораторная работа № 7. Использование CGI-скриптов

(8 неделя, 2 часа)

 

Директивы конфигурации веб-сервера для работы с CGI.

Задание: Настроить веб-сервер для работы с CGI. Разместить готовый скрипт в соответствующий каталог веб-сервера. Убедиться в работоспособности скрипта. Для начала в настройках нужного виртуального хоста убераем настройки "php как модуль apache", такие как

AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml AddType application/x-httpd-php-source .phps

Затем добавляем строки:

AddHandler php-cgi .php .php3 .php4 .php5 .phtml Action php-cgi /php-bin/php

ScriptAlias /php-bin/ /www/himik.org.ru/data/php-bin/ #Путь до папки, где будет находиться файл php, сам файл необходимо будет создать

Теперь переходим в папку, где будет находиться файл php. В нашем случае это /www/himik.org.ru/data/php-bin.

Создаем файл php в который вносим запись с путем к нашему php:

#!/usr/local/bin/php-cgi

Закрываем файл.

Устанавливаем права на запуск для файла коммандой:

chmod +x php

Перезапускаем Apache. Теперь php должен работать в режиме cgi.

Если Apache не запускается, то смотрите логи.

 

 

Лабораторная работа № 8. Динамические веб-страницы. SSI

(9-10 неделя, 4 часа)

 

Цель работы

Ознакомиться с технологией серверных включений (SSI). Получить навыки применения директив SSI для динамического управления содержимым веб-страниц на стороне сервера.

Задания к работе

 Выполнить настрой^ веб-сервера на использование SSI в до^мментах .html.

 Выполнить редизайн Вашего сайта с использованием SSI: все повторяющиеся элементы веб-собержимого вынести в файлы с расширением .inc. С помощью SSI реализовать динамическую сборку страниц.

Методические указания

Технология SSI (Server Side Includes) - мощное и гибкое средство для динамического формирования веб-страниц на стороне сервера. Суть технологии заключается в препроцессинге запрашиваемых страниц на серверной стороне на предмет поиска в них специальных команд - директив SSI.

Директивы SSI позволяют использовать в HTML документах такие возможности как выполнение других программ, получение информации о файлах и переменных окружения, объединение нескольких файлов в один.

Если сервер не сконфигурирован на поддержку SSI, то команды SSI не обрабатываются и отправляются пользователю как есть и в веб-странице выглядят как комментарий.

Настройка сервера

Модулем SSI по умолчанию обрабатываются файлы с расширением .shtml и .shtm , но можно настроить сервер и на обработ^ файлов .html и .htm. Для этого необходимо указать в конфигурационном файле Apache (httpd.conf) или в пользовательском файле управления каталогами .htaccess следующие строки:

AddType text/html .htm .html .shtml AddHandler server-parsed .htm .html .shtml Options +Includes

Примечание: Файл httpd.conf отвечает за настрой^ всего веб-сервера, не доступен непривилегированному пользователю. Скрытый (dot-файл) .htaccess размещается в пользовательских каталогах и отвечает за их настройки.

Формат директив SSI

Общий синтаксис директивы SSI таков:

<!--#команда параметр="значение"-->

Некоторые команды имеют еще и подкоманды:

&&подкоманда&&

Директивы SSI

В табл. 1 перечислены основные директивы SSI.

Табл.1 Директивы SSI

echo Вставка в документ переменных среды (браузер, дата, имя документа, ...).

include Включение файла в HTML документ.

fsize Включение размера файла в HTML документ.

exec Выполнение внешнего исполняемого файла (CGI программы). Выходной поток данных (стандартный вывод) этой программы включается в документ.

config Установка параметров для SSI+ команд.

odbc Обращение к внешней ODBC СУБД.

email Отправка электронной почты или представление формы.

if    Условный оператор, управляющий выполнением других команд SSI и вывода документа.

goto Оператор перехода на определенную SSI метку (label).

label Метка в документе.

break Остановка вывода документа.

 

Лабораторная работа № 9. Серверные приложения

(11-12 неделя, 4 часа)

 

Цель работы

Изучить основы языка PHP. Разработать простое серверное приложение на языке PHP.

Задание к работе

Написать скрипт, учитывающий количество кликов по ссылкам на скачивание файлов, записывающий эти данные в файл, а затем выполняющий редирект на скачиваемый файл. Формат записи может быть, например таким:

имя_файла;дата/времяИр-адрес клиента;

Методические указания

Серверные приложения

Препроцессная обработка на стороне сервера подразумевает вызов программы-интерпретатора, которая обрабатывает запрашиваемый файл скрипта, исполняет его команды. Результат работы интерпретатора передается веб-серверу, который, в свою очередь, возвращает их клиенту (рис. 1)

 

Рис. 1. Препроцессинг HTML на сервере Основы PHP

PHP (рекурсивный акроним для "PHP: Hypertext Preprocessor") это широко распространённый язык сценариев, который создан специально для Веб и который можно внедрять в HTML.

PHP изначально был разработан с тем, чтобы код выполнялся на сервере. Это позволяет передавать клиенту результат работы скрипта, не показывая ему, каков был исходный код.

PHP предельно прост для новичка в программировании, но предлагает много продвинутых возможностей для программиста-профессионала. Возможности PHP весьма широки, но освоить основные из них несложно за пару часов (конечно же, имея понятие о программировании в целом). Листинг 1 иллюстрирует применение PHP для формирования веб-страницы с текстом «Hello, World!» (курсивом выделен исходный код PHP).

Листинг 1 Простая программа на PHP

<?php

$site_title = "A first PHP program";

$hello = "Hello, World!";

?>

<html>

<head>

<title><?PHP echo $site_title; ?></title>

</head>

<body>

<?PHP

//Вывести текст с меткой времени

echo "<p sp_example'...

1 of 1 instances running (1 running)

Push successful! App 'sp_example' available at sp_example.cfapps.io

Если все прошло хорошо, ваше приложение сейчас запущено в Веб! Можете убедиться в этом, открыв браузер и перейдя по URL, который выдала вам cf (в моем примере это http://sp_example.cfapps.io). Сделав это, вы должны увидеть ответ от вашего приложения.


Дата добавления: 2018-02-28; просмотров: 420; Мы поможем в написании вашей работы!






Мы поможем в написании ваших работ!