Автор работы: Пользователь скрыл имя, 18 Октября 2013 в 13:11, курс лекций
1. Особенности программирования для Web. Различия в программировании на стороне клиента и сервера. Инструменты и технологии программирования.
Есть два типа программирования в веб-приложениях: на стороне клиента и на стороне сервера.
Программирование на стороне клиента означает использование языка программирования, который будет выполняться в веб-браузере пользователя. Стандартным языком программирования на стороне клиента, на сегодняшний день, является JavaScript. JavaScript может быть включён в отдельные текстовые файлы, на которые ссылаются файлы HTML, или же вы можете вставить его прямо в HTML в специальные теги HTML — script теги. Когда веб-браузер пользователя встречает эти теги, он выполняет код JavaScript, содержащийся либо в тегах, либо в файлах.
[a-z]+ - Один или более символов нижнего регистра
[0-9.-] - Любая цифра, точка или знак минус
^[a-zA-Z0-9_]{1,}$ - Любое слово, хотя бы одна буква, число или _
([wx])([yz]) - wy, wz, xy, или xz
(^A-Za-z0-9) - Любой символ (не число и не буква)
([A-Z]{3}|[0-9]{4}) - Означает три буквы или 4 цифры
==Функция - Описание==
1. preg_match() - ищет строку по заданному шаблону, возвращает true, если строка находится и false, в остальных случаях
2. preg_match_all() находит все вхождения строки, заданной по шаблону
3. preg_replace() действует по тому же принципу, что и ereg_replace(), за исключением того, что регулярные выражения можно использовать как для задания шаблона поиска, так и для строки, на которую следует заменить, найденное значение.
4. preg_split() действует так же как split(), за исключением того, что регулярное выражение можно использовать в качестве параметра для шаблона поиска.
5. preg_grep() ищет все элементы входного массива, возвращая все элементы, соответствующие шаблону регулярного выражения.
6. preg_quote() Экранирует символы регулярного выражения
19. Язык программирования PHP. Работа с текстовыми файлами.
PHP — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений.
Серверный языком сценариев. Код PHP внедряется в HTML-страницу и выполняется на сервере при каждой ее загрузке. Интерпретируется веб-сервером (выполняется построчно) и генерируется HTML-код.
открыть файл. Имя файла – это не URL, это физическое расположение этого файла.
Например:
$f = fopen (<имя файла>, <режим открытия>);
Режим открытия:
1. “r” – для чтения
2. “r+” – для чтения и записи
3. w – для записи
4. w+ – для записи и чтения (уничтожение существующего и перезапись)
5. a – append (режим добавления в конец файла)
fwrite ($f, <строка для записи>); – запись одной строки
$r = fgets ($f); – чтение из файла
$p = file ($f);
fclose ($f); - закрытие файла
unlink (<имя файла>); – удалить файл
file_exists (<имя>); - проверка существования файла
filesize (<имя файла>); – размер файла в виде количества строк (для текстового)
fseek ($f, n) – установка указателя на какой-либо элемент в файле
20. Язык программирования PHP. Включение в программу внешних скриптов. Пользовательские подпрограммы. Обработка входных данных.
PHP — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений.
Серверный языком сценариев. Код PHP внедряется в HTML-страницу и выполняется на сервере при каждой ее загрузке. Интерпретируется веб-сервером (выполняется построчно) и генерируется HTML-код.
Операторы include() и require(), подключают и вычисляют внешние файлы.
include() выводит warning!, а require() выдаёт fatal error. Иначе говоря, используйте require(), если вы хотите, чтобы отсутствие файла останавливало процессинг страницы. include() не работает, таким образом, скрипт продолжит выполнение.
Любые переменные, определенные до подключения внешнего файла, будут доступны и в вызываемом файле. Переменные, определенные в подключенном файле, будут доступны и в вызывающем файле после точки подключения.
Подпрограмма - это специальным образом оформленный фрагмент программы, к которому можно обратиться из любого места внутри программы.
В PHP такими подпрограммами являются пользовательские функции. Пользовательская функция может быть объявлена в любой части программы, до места ее первого использования.
Синтаксис объявления функций следующий:
function Имя (аргумент1[=значение1],...
{тело_функции}
Например:
f ($a, $b=0);
f (5, 5) – переменная а будет равна 5, переменная b будет равна 5.
f ( ) – выдаст ошибку
f ($a=1, $b=0);
f ( ) – переменная а будет равна 1, переменная b будет равна 0 (по умолчанию).
$a = $b = 1;
Function f ( );
{global $a
Print $a, $b;}
Выведется только значение а, которое равно 1 (т.к. а – глобальная переменная).
==Передача аргументов по
есть два вида аргументов функций:
параметры-значения; параметры-переменные.
Функции не могут изменить параметр-значение, то есть он доступен функции "только для чтения" - она может его использовать, но не более. В качестве параметра-значения необязательно указывать переменную, можно указать само значение, отсюда название - параметр-значение.
По умолчанию аргументы в функцию передаются по значению (это означает, что если вы измените значение аргумента внутри функции, то вне ее значение все равно останется прежним).
В отличие от параметров-значений, параметры-переменные могут быть изменены в процессе работы функции. Тут уже нельзя передавать значение, нужно обязательно передать переменную. В PHP для объявления параметров-переменных используется механизм передачи переменной по ссылке.
Если вы хотите, что бы аргумент всегда передавался по ссылке, вы должны указать амперсанд (&) перед именем аргумента в описании функции:
<?php
function funct(&$string)
{ $string .= 'а эта внутри.'; }
$str = 'Эта строка за пределами функции, ';
funct($str);
echo $str; // Выведет 'Эта строка за пределами функции, а эта внутри.'
?>
21. Язык программирования PHP. Доступ к базам данных.
PHP — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений.
Серверный языком сценариев. Код PHP внедряется в HTML-страницу и выполняется на сервере при каждой ее загрузке. Интерпретируется веб-сервером (выполняется построчно) и генерируется HTML-код.
Любое веб-приложение, использующее БД, должно реализовывать следующие действия:
1. Проверка и фильтрация данных, получаемых от пользователя
\” – действие кавычек
“$a” – значение переменной а
‘$a’ – строка $a
2. Установка соединения с БД (mysql_connect)
3. Передача запросов в БД (mysql_query)
4. Получение результатов и предоставление результатов пользователю (mysql_fetch_array)
Куки
Setcookie (‘name’, ‘value’ [, time]) – установить значение куки
Пользователь может отключить куки.
$_COOKIE [‘logged’]=1;
Сессии
session_start(); - старт сессии
При закрытии браузера сессия закрывается. При открытии браузера открывается новая сессия, нужно снова вводить пароль. Отключить сессию невозможно пользователю.
$_SESSION [‘logged’]=1;
Шифрование
$k=mt_rand (1, 1000000); // генерирует случайные числа от 1 до 1000000
$k=md5 ($k); // функция шифрования
Для подключения к базе tests можно использовать следующий код:
<?php
$db = @mysql_connect("localhost", "root", "123456");
if (!$db) {
echo "Не удается подключиться к БД";}
else {
//работаем с БД :)
mysql_select_db ("tests");
mysql_close($db); //закрываем соединение}
?>
==Обработка результата запроса==
Для обработки результата запроса используются следующий функции:
mysql_num_rows () - возвращает количество записей в результате
mysql_num_fields () - возвращает количество полей в результате
mysql_result () - позволяет получить доступ
к отдельному полю по
mysql_fetch_array () - возвращает результат
в виде списка и
mysql_fetch_row () - возвращает результат в виде списка
mysql_fetch_assoc () - возвращает результат
в виде ассоциированного
mysql_fetch_object () - возвращает результат в виде объекта
22. Аутентификация пользователей средствами PHP.
Аутентификация - процедура проверки подлинности, например: проверка подлинности пользователя путём сравнения введённого им пароля с паролем в базе данных пользователей.
Куки
Setcookie (‘name’, ‘value’ [, time]) – установить значение куки
Пользователь может отключить куки.
$_COOKIE [‘logged’]=1;
Сессии
session_start(); - старт сессии
При закрытии браузера сессия закрывается. При открытии браузера открывается новая сессия, нужно снова вводить пароль. Отключить сессию невозможно пользователю.
$_SESSION [‘logged’]=1;
Шифрование
$k=mt_rand (1, 1000000); // генерирует случайные числа от 1 до 1000000
$k=md5 ($k); // функция шифрования
==СЕССИИ (СЕАНСЫ) В PHP==
Сессии и cookies предназначены для
хранения сведений о пользователях
при переходах между
Использование сессий и cookies очень
удобно и оправдано в таких
приложениях как Интернет-
Протокол HTTP является протоколом "без сохранения состояния". когда пользователь открывает сначала одну страницу сайта, а затем переходит на другую страницу этого же сайта, установить, что оба запроса относятся к одному пользователю. Т. о. необходим метод, при помощи которого можно было бы отслеживать информацию о пользователе в течение одного сеанса связи с Web-сайтов. Одним из таких методов является управление сеансами при помощи предназначенных для этого функций.
При работе с сессиями различают следующие этапы:
==Открытие сессии==
Самый простой способ открытия сессии заключается в использовании функции
session_start
Синтаксис: session_start();
Эта функция проверяет, существует ли идентификатор сессии, и, если нет, то создает его. Если идентификатор текущей сессии уже существует, то загружаются зарегистрированные переменные сессии.
==Регистрация переменных сессии==
После инициализации сессии появляется
возможность сохранять
<?php
// Инициируем сессию
session_start();
// Помещаем значение в сессию
$_SESSION['name'] = "value";
// Помещаем массив в сессию
$arr = array("first", "second", "third");
$_SESSION['arr'] = $arr;
// Выводим ссылку на другую страницу
echo "<a href='other.php'>другая страница</a>";
?>
На страницах, где происходит вызов функции session_start(), значения данных переменных можно извлечь из суперглобального массива $_SESSION.
<?php
// Инициируем сессию
session_start();
// Выводим содержимое суперглобального массива $_SESSION
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
?>
Результат работы скрипта выглядит следующим образом:
Array
( [name] => value
[arr] => Array
(
[0] => first
[1] => second
[2] => third ))
==Закрытие сессии==
После завершения работы с сессией
сначала нужно
Синтаксис: unset($_SESSION["username"]);
==Пример простой сессии==
Рассмотрим пример простой сессии, работающей с тремя страницами. При посещении пользователем первой страницы открывается сессия и регистрируется переменная $username.:
<?
session_start();
$_SESSION['username'] = "maksim";
echo 'Привет, '.$_SESSION['username']."<br>"
?>
<a href="page2.php">На следующую страницу </a>
После этого, пользователь maksim нажимает на ссылку и попадает на страницу page2.php, код которой приведен в листинге:
<?
session_start();
echo $_SESSION['username'].' , ты пришел
на другую страницу этого
echo("<br>");
?>
<a href="page3.php">На следующую страницу </a>
При нажатии на ссылку, пользователь попадает на страницу page3.php, при этом происходит разрегистрация сеансовой переменной и уничтожение сессии.
<?
session_start();
unset($_SESSION['username']); // разрегистрировали переменную
echo 'Привет, '.$_SESSION['username'];
/* теперь имя пользователя уже не выводится */
session_destroy(); // разрушаем сессию
?>
После разрегистрации сеансовой переменной значение массива $_SESSION['username'] уже недоступно.
==КУКИ==
Определение Cookies - это текстовые строки, хранящиеся на стороне клиента, и содержащие пары "имя-значение", с которыми связан URL, по которому браузер определяет, нужно ли посылать cookies на сервер.
==Установка cookies==
Установка cookies производится с помощью функции setcookie:
Синтаксис:
bool setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
Эта функция имеет следующие аргументы:
name - имя устанавливаемого cookie;
value - значение, хранящееся в cookie с именем $name;
expire - время в секундах с начала эпохи, по истечение которого текущий cookie становится недейтвительным;
path - путь, по которому доступен cookie;
domain - домен, из которого доступен cookie;
secure - директива, определяющая, доступен ли cookie не по запросу HTPPS. По умолчанию эта директива имеет значение 0, что означает возможность доступа к cookie по обычному запросу HTTP.
==Пример простого приложения с cookies==
Давайте создадим простой сценарий, подсчитывающий при помощи cookies количество обращений посетителя к странице.
В cookie с именем counter будет храниться число посещений страницы пользователем:
<?
$counter++;
setcookie("counter",$counter);
echo("Вы посетили эту страницу $counter раз");
?>
При работе с cookies необходимо учитывать важный момент, заключающийся в том, что cookie надо обязательно устанавливать перед отправкой в браузер каких-либо заголовков, поскольку сами cookies устанавливаются в виде заголовков. Поэтому если установить cookies после какого-либо текста, отправляемого в броузер, то возникнет ошибочная ситуация.
Заметим, что в этих листингах мы обращаемся к переменной $counter, в которой хранится значение cookie, как к глобальной, что требует наличия включенной директивы register_globals. Если эта директива отключена, то значение, хранящееся в cookie можно получить через глобальный массив $_COOKIE["name"]:
<?
$_COOKIE['counter']++;
setcookie("counter",$_COOKIE['
echo 'Вы посетили эту страницу '.$_COOKIE['counter'].' раз';
?>
==Установка срока годности cookies==
По умолчанию cookies устанавливаются на один сеанс работы с броузером, однако можно задать для них более продолжительный срок существования. Это очень удобное и полезное свойство, поскольку в этом случае пользователю не нужно предоставлять свои данные вновь при каждом посещении сайта.