Разработка интернет-приложений. Лекция 4.

Разработка интернет-приложений. Лекция 4.
Разработка интернет-приложений. Лекция 4.

Лекция 4. Понятие сервера веб. Основы PHP.

На страницу урока →

Сервер веб и локальный доступ к сайту

 
local

 

 

 

web

 

 

 

Как создать сервер веб

Платформа 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 — скриптовый язык, активно применяемый для разработки серверных веб-приложений.

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?

Опубликовано: 11.11.2013 г.