
- •Понятие базы данных и системы баз данных
- •Компоненты системы баз данных
- •Языковые средства сбд
- •Программные средства сбд
- •Технические средства сбд
- •Операции с бд
- •Администрация базы данных
- •Взаимодействие компонентов системы баз данных
- •Классификация баз данных
- •Классификация субд
- •Классификация систем баз данных
- •Модели данных
- •Основные понятия реляционной модели данных
- •Целостность реляционных данных
- •Операции над отношениями
- •Нормализация баз данных
- •Первая нормальная форма (1нф)
- •Вторая нормальная форма (2нф)
- •Третья нормальная форма (3нф)
- •Нормальная форма Бойса-Кодда (бкнф)
- •Нормальные формы высших порядков (4нф и 5нф)
- •Уровни моделирования предметной области
- •Концептуальное проектирование баз данных
- •Даталогическое проектирование
- •Физические модели
- •Case-средства разработки баз данных
- •Пример нотации er-модели – метод idef1x
- •Автоматическая генерация базы данных
- •Требования к распределенным базам данных
- •Базовые архитектуры распределенной обработки
- •Транзакции
- •Сериализация транзакций
- •Представления, хранимые процедуры, триггеры
- •Тиражирование данных
- •Резервное копирование и восстановление
- •Средства защиты данных
- •Sql. Что можно делать с помощью sql. Группы команд sql.
- •Типы данных sql.
- •Типы привилегий. Объектная и системная привилегии.
- •Команды языка определения данных. Команды языка управления данными. Команды языка управления транзакциями. Команды языка манипулирования данными.
- •Sql. Команда Create Table. Команда create user. Команда create view.
- •Sql. Команда create index.Команда create sequence. Команда create synonym.
- •Sql. Команда alter table.
- •Sql. Команда insert.
- •Sql. Команда delete.
- •Sql. Команда update.
- •Sql. Команда select.
- •Sql. Команда grant.
- •Sql. Команда revoke.
- •Sql. Команда drop.
- •Sql. Команды show , describe.
- •Sql. Строки и выражения.
- •Sql. Соединение таблиц.
- •Sql. Подзапросы.
- •Sql.Работа с null-значениями. Условие check. Ограничение unique.
- •Sql.Первичный ключ primary key.
- •Sql.Ограничения foreign key.
- •Возможности php. Преимущества php.
- •Преимущества php
- •Что нового в php5 ? Новая объектная модель Zend 2.0.Улучшенная производительность. Новые директивы. Новые механизмы работы с потоками. Новы функции php5. Новые расширения.
- •Движок» php. Программа на php . Php в html-документах. Комментарии в php-скриптах.
- •Переменные в php. Типы данных в php.
- •Константы в php. Выражения в php.
- •Конструкции языка php. Условные операторы. Циклы в php.
- •Конструкции языка php. Конструкции выбора. Конструкции возврата значений. Конструкции включений в php.
- •Пользовательские функции в php. Особенности пользовательских функций php. Создание пользовательских функций. Передача аргументов пользовательским функциям.
- •Функции и порядок работы с субд в php.
- •Основы ооп. Инкапсуляция. Полиморфизм. Наследование. Классы и объекты в php. Доступ к классам и объектам в php. Инициализация объектов. Наследование и полиморфизм классов в php.
- •70.Система xampp-1.8.1.Порядок установки в среде операционных систем Windows и Linux . Веб-сервер Apache.
- •71.Хостинг. Домен. Доменные зоны. Порядок проведения процесса размещения сайта. Перенос или трансфер доменов. Jabber. Сервис Whois. Обеспечение взаимодействия с субд.
- •Доменные зоны
- •72.Работа с формами. Обработка ввода пользователя. Передача файла на сервер. Отправка почты с вложением из php.
- •73.Язык Perl.Основные понятия. Cтруктуры данных. Скалярные величины. Простые массивы. Ассоциативные массивы. Простые операторы. Составные операторы.
- •75.Язык Perl. Операторы сравнения. Операторы эквивалентности. Побитовое и, побитовое или и Исключающее или. Логическое и и логическое или. Оператор диапазона. Условный оператор.
- •76.Язык Perl. Операторы присваивания. Оператор ``запятая''. Логическое не. Логическое и, или и Исключающее или. Оператор чтения из файла. Оператор замены строки. Оператор замены множества символов.
- •77.Язык Perl. Ссылки. Символьные ссылки.
- •78.Язык Perl. Регулярные выражения. Зарезервированные переменные.
- •79.Язык Perl. Встроенные функции.
- •80.Язык Perl. Подпрограммы и модули. Пакеты. Таблицы символов. Конструкторы и деструкторы пакетов. Классы.
- •81.Язык Perl. Объектная ориентация. Объекты. Классы. Методы. Вызов метода. Деструкторы.
72.Работа с формами. Обработка ввода пользователя. Передача файла на сервер. Отправка почты с вложением из php.
Для передачи данных от пользователя Web-страницы на сервер используются HTML-формы. Для работы с формами в PHP предусмотрен ряд специальных средств.
Предварительно определенные переменные
В PHP существует ряд предварительно определенных переменных, которые не меняются при выполнении всех приложений в конкретной среде. Их также называют переменными окружения или переменными среды. Они отражают установки среды Web-сервера Apache, а также информацию о запросе данного браузера. Есть возможность получить значения URL, строки запроса и других элементов HTTP-запроса.
Все предварительно определенные переменные содержатся в ассоциативном массиве $GLOBALS. Кроме переменных окружения этот массив содержит также глобальные переменные, определенные в программе.
<html>
<head>
<title>Просмотр массива $GLOBALS</title>
</head>
<body>
<?php
$a = «Старт!!!";
foreach ( $GLOBALS as $key=>$value )
echo "\$GLOBALS[\"$key\"] == $value<br>";
?>
</body>
</html>
В результате на экране появится список всех глобальных переменных,
включая переменные окружения. Наиболее часто используемые из них:
Обработка ввода пользователя
PHP-программу обработки ввода можно отделить от HTML-текста, содержащего формы ввода, а можно расположить на одной странице.
<?php
if ( ! isset( $cardnumber ) )
$m = "Введите номер карточки";
elseif ( $cardnumber == "" )
$m = "Ваш номер пуст!";
else
$m = "Ваш номер: $cardnumber";
?>
<html>
<head>
<title>Пример обработки ввода</title>
</head>
<body>
<h1><?php echo $m?></h1>
<form name="form1" action="<?php echo $PHP_SELF?>" method="post">
<p>Номер карточки:
<input name="cardnumber" type="text" size="20">
</form>
</body>
</html>
Здесь отсутствует кнопка передачи данных, т.к. форма, состоящая из одного поля, передается автоматически при нажатии клавиши <Enter>.
При обработки элемента с многозначным выбором для доступа ко всем выбранным значениям нужно к имени элемента добавить пару квадратных скобок.
ex.htm
<html>
<head>
<title>Список</title>
</head>
<body>
<form name="form1" action="ex1.php" method="post">
<select name="Item[]" size=5 multiple>
<option>Чай
<option>Кофе
<option>Молоко
<option>Ветчина
<option>Сыр
</select>
<input type="submit" value="ВВОД">
</form>
</body>
</html>
ex1.php
<html>
<head>
<title>Обработка списка (файл ex1.php)</title>
</head>
<body>
<?php
echo "Ваш заказ: <p><ul>";
foreach ( $Item as $value ) echo "<li>$value";
echo "</ul>";
?>
</body>
</html>
Прием значений от checkbox-флажков.
< ?
if (@$_REQUEST['doGo']) {
foreach (@$_REQUEST['known'] as $k=>$v) {
if($v) echo \"Вы знаете язык программирования $k!<br>\";
else echo \"Вы не знаете языка программирования $k. <br>\";
}
}
?>
<form action=\"< ?=$_SERVER['SCRIPT_NAME']?>\" method=post>
Какие языки программирования вы знаете?<br>
<input type=hidden name=\"known[PHP]\" value=\"0\">
<input type=checkbox name=\"known[PHP]\" value=\"1\">PHP<br>
<input type=hidden name=\"known[Perl]\" value=\"0\">
<input type=checkbox name=\"known[Perl]\" value=\"1\">Perl<br>
<input type=submit name=\"doGo\" value=\"Go!\">
</form>
< ?php ## Модель скрипта, принимающего текст от пользователя.
if (@$_REQUEST['text'])
echo htmlspecialchars($_REQUEST['text']).\"<hr>\";
?>
<form action=\"< ?=$_SERVER['SCRIPT_NAME']?>\" method=\"post\">
<textarea name=\"text\" cols=\"60\" rows=\"10\">
< ?=@htmlspecialchars($_REQUEST['text'])?>
</textarea><br>
<input type=\"submit\">
</form>
Можно обрабатывать формы, не заботясь о фактических именах полей. Для этого можно использовать (в зависимости от метода передачи) ассоциативный массив $HTTP_GET_VARS или $HTTP_POST_VARS. Эти массивы содержат пары имя/значение для каждого элемента переданной формы.
<html>
<head>
<title>Обработка произвольного ввода
независимо от метода передачи</title>
</head>
<body>
<?php
$params = ( $REQUEST_METHOD == "GET" )
? $HTTP_GET_VARS : $HTTP_POST_VARS;
foreach ( $params as $key=>$value )
echo "$key == $value<br>";
?>
</body>
</html>
Обработка нажатия на кнопку с использованием оператора '@'.
< ?PHP
if (@$_REQUEST['submit']) echo \"Кнопка нажата!\"
?>
<form action=\"< ?=$_SERVER['SCRIPT_NAME']?>\">
<input type=\"submit\" name=\"submit\" value=\"Go!\">
</form>
С помощью функции header(), послав браузеру заголовок "Location", можно перенаправить пользователя на новую страницу. Например:
header ( "Location: ex2.php" );
Передача файла на сервер. Залить файл. UpLoad
PHP позволяет передавать на сервер файлы. HTML-форма, предназначенная для передачи файла, должна содержать аргумент enctype="multipart/form-data".
Кроме того в форме перед полем для копирования файла должно находиться скрытое поле с именем max_file_size. В это скрытое поле должен быть записан максимальный размер передаваемого файла (обычно не больше 2 Мбайт).
Само поле для передачи файла - обычный элемент INPUT с аргументом type="file".
Например:
<form enctype="multipart/form-data"
action="<?echo $PHP_SELF?>" method="post">
<input type="hidden" name="max_file_size" value="51200">
<input type="file" name="myfile"><br>
<input type="submit" value="ВВОД">
</form>
После того, как файл передан на сервер, он получает уникальное имя и сохраняется в каталоге для временных файлов. Полный путь к файлу записывается в глобальную переменную, имя которой совпадает с именем поля для передачи этого файла. Кроме этого PHP сохраняет еще некоторую дополнительную информацию о переданном файле в других глобальных переменных:
Переменная Описание
$myfile Путь к временному файлу
$myfile_name Имя переданного файла
$myfile_size Размер переданного файла
$myfile_type Тип переданного файла в системе MIME
<html>
<head>
<title>Обработка переданного файла</title>
</head>
<?php
if ( ! isset( $myfile ) )
{
echo "путь: $myfile<br>";
echo "имя: $myfile_name<br>";
echo "размер: $myfile_size<br>";
echo "тип: $myfile_type<br>";
}
?>
<body>
<form enctype="multipart/form-data"
action="<?echo $PHP_SELF?>" method="post">
<input type="hidden" name="max_file_size" value="51200">
<input type="file" name="myfile"><br>
<input type="submit" value="ВВОД">
</form>
</body>
</html>
Если возникнут проблеммы с перекодировкой сервером загруженного файла, символ с кодом 0х00 заменен на пробел (символ с кодом 0х20), допишите в файл httpd.conf из каталога Apache(/usr/local/apache) следующие строки.
<Location />
CharsetRecodeMultipartForms Off
</Location>
Отправка почты с вложением из PHP
<?
function XMail( $from, $to, $subj, $text, $filename)
{
$f = fopen($filename,"rb");
$un = strtoupper(uniqid(time()));
$head = "From: $from\n";
$head .= "To: $to\n";
$head .= "Subject: $subj\n";
$head .= "X-Mailer: PHPMail Tool\n";
$head .= "Reply-To: $from\n";
$head .= "Mime-Version: 1.0\n";
$head .= "Content-Type:multipart/mixed;";
$head .= "boundary=\"----------".$un."\"\n\n";
$zag = "------------".$un."\nContent-Type:text/html;\n";
$zag .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
$zag .= "------------".$un."\n";
$zag .= "Content-Type: application/octet-stream;";
$zag .= "name=\"".basename($filename)."\"\n";
$zag .= "Content-Transfer-Encoding:base64\n";
$zag .= "Content-Disposition:attachment;";
$zag .= "filename=\"".basename($filename)."\"\n\n";
$zag .= chunk_split(base64_encode(fread($f,filesize($filename))))."\n";
if (!@mail("$to", "$subj", $zag, $head))
return 0;
else
return 1;
?>