Сервер веб и локальный доступ к сайту
Как создать сервер веб
Платформа LAMP
Linux
Apache
MySQL (MariaDB)
Perl/PHP/Phyton
Варианты настройки сервера LAMP
1. Установить Linux (FreeBSD), Apache, MySQL, PHP (и др.), модули Apache и PHP
2. Установить все программы по отдельности на Windows (WAMP)
3. Установить комплект программ на Windows (http://denwer.ru, https://xampp.ru/)
Другая платформа веб-сервера
1. Установить IIS на Windows
2. Использовать альтернативное решение для Linux — Tomcat, nginx, lighttpd или др.
3. Написать самостоятельно на Node.js
Серверные приложения
CGI (позволяет использовать любой язык программирования)
Технология динамической сборки (SSI)
Технология «включенных» скриптов (PHP и нек. др.)
Node.js — программная платформа для создания «легких» серверных веб-приложений, а также серверных модулей интернет-приложений, основанных на AJAX. Все компоненты приложения создаются на JavaScript.
Пример CGI-приложения (язык Pascal)
Program sample_cgi; Begin Writeln('Content-Type: text/html'); Writeln; Writeln('<html>'); Writeln('<head><title>Hello</title></head>'); Writeln('<boby>'); Writeln('<p>Hello, world!</p>'); Writeln('</body>'); Writeln('</html>'); End.
Идея «включенного» скрипта
Общие характеристики PHP
PHP — скриптовый язык, активно применяемый для разработки серверных веб-приложений.
PHP изначально создавался как язык веб-разработки. В качестве встроенных имеет средства:
- автоматического извлечения POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
- взаимодействие с различными СУБД;
- автоматизированной отправки HTTP-заголовков;
- работы с cookies и сессиями;
- обработки файлов, загружаемых на сервер;
- др.
PHP является кроссплатформенным языком (платформа LAMP), имеет большое количество модулей. Один из самых популярных языков программирования вообще и лидер среди языков серверной веб-разработки.
Подробнее: http://ru.wikipedia.org/wiki/Php
Синтаксис и основные конструкции
<?php echo 'Hello, world!'; ?>
Конструкция описывается в файлах *.php. Эти файлы являются html-документами, но имеют специальное расширение для упрощения обработки таких файлов веб-сервером.
$a = 'Привет, мир!'; echo $a;
Все переменные начинаются с символа $, чувствительны к регистру. Вывод данных — команда echo. Каждая строка завершается точкой с запятой.
$a = 'Привет,'; $b = 'мир!'; echo $a . ' ' . $b; echo "$a $b"; echo "$a уважаемый друг!"; echo '$a уважаемый друг!'; echo "<font color=\"red\">$a уважаемый друг!</font>\n";
«Склеивание» строк производится при помощи оператора «точка». Сами строки оформляются в кавычках или апострафах. Но! Кавычки и апострофы несут разный смысл — «внутри» кавычек обрабатываются переменные.
$arr = array ("Крош", "Лосяш", "Бараш"); $arr2 = array ("fio" => "Маша Иванова", "age" => 18, "faculty" => "mif"); echo $arr[0]; echo $arr2["fio"]; $arr[] = "Нюша"; $arr2["rating"] = 100; echo $arr[ 3]; echo $arr2["rating"];
Массив в PHP — динамический тип данных, который преобразует значения в ключи.
if ( $arr2["faculty"] == "mif" ) { echo "Факультет математики, информатики и физики"; } if (условие) {блок выполнения} else {блок выполнения} if (условие) {блок выполнения} elseif (условие) {блок выполнения} else {блок выполнения} $i = 0; while ($i < 4) { echo $arr[$i] . "\n"; $i++; } do {блок выполнения} while (условие) for (выражение1; выражение2; выражение3) {блок_выполнения} foreach ($array as $value) {блок_выполнения} foreach ($array as $key => $value) {блок_выполнения}
PHP поддерживает различные способы организации ветвлений и циклов. Внутри блоков выполнения могут быть фрагменты HTML-кода ( … ?> ….. <?php … )
function func_name($param) { ... return $result; } ... func_name($abc); func_name(); $c = 'func_name'; $c();
Переменные могут передаваться по значению и по ссылке. При описании параметров функций для них можно задавать значения по умолчанию. Параметр return указывать не обязательно.
include 'имя_файла'; include $file_name; require 'имя_файла'; require $file_name;
require требует обязательного присутствия файла, include при отсутствии файла лишь выдает ошибку.
Подробнее: http://www.intuit.ru/studies/courses/42/42/info
Суперглобальные массивы
Суперглобальные массивы — предопределенные массивы с глобальной видимостью, содержащие, как правило, различные сведения о HTTP-запросе.
$_GET
Параметры GET-запроса, переданные в URI после знака вопроса «?».
$_POST
Значения полей HTML-формы при отправке методом POST.
$_FILES
Сведения об отправленных методом POST файлах.
$_COOKIE
Значения cookie, ассоциированные со страницей.
$_REQUEST
Элементы массивов $_GET, $_POST, $_FILES, $_COOKIE.
$_SESSION
Данные сессии.
Пример
<form action="..."> <input type="text" name="username"> <input type="submit" value="Нажмите"> </form> ... <?php echo $_POST["username"]; ?>
Выведет содержимое текстового поля с именем username.
Демонстрационный пример
Пример простого сайта на PHP: http://edu.vspu.ru/members/asergeev/docs/50671/download
В примере есть:
- динамическая сборка сайта из отдельных файлов
- обработка параметров GET-запроса
- обработка данных форм
- работа с текстовыми файлами (создание файлов с пользовательскими данными)
В примере нет:
- работы с базой данных
- работы с сессиями
- динамической обработки графических данных и др.
Контрольная работа по предыдущей лекции
Вопрос:
Чем отличаются блочные и строковые элементы HTML?
Алексей Н. Сергеев