
Лабораторная работа №9
Разработка Чата с использованием Dbase файлов.
ЗАДАНИЯ:
Задание 1.
Написать PHP программу для регистрации пользователей Чата в Dbase файле Пользователей.
Задание 2.
Написать PHP программу для авторизации работы с данными , представленными на сайте.
Задание 3.
Напишите программу работы в чате Пользователей.
Разработайте Dbase файл с регистрацией входа/выхода в Чат Пользователя и
сохранения его сообщения. Сохраните все детали работы в Чате различных Пользователей.
Теоретическая частьПоказываем версию php интерпретатора:
<? echo phpversion(); ?>
Убираем ограничение времени на выполнения скрипта:
<? set_time_limit(0); ?>
Показываем на экран монитора операционную систему, в которой работает php интерпретатор:
<? $os=explode(" ",php_uname()); $os=$os[0]; echo "Наша операционная система - ".$os; ?>
Dbase функции
Оглавление
dbase_create
dbase_open
dbase_close
dbase_pack
dbase_add_record
dbase_delete_record
dbase_get_record
dbase_numfields
dbase_numrecords
Эти функции позволяют получить доступ к записям в dBase-формате (dbf) базы данных.
Не поддерживаются индексы и мемо(записи) поля. Также не поддерживается блокировка. Поддержка dBase введена для импорта и экспорта ваших данных из и в вашу web базу данных, так как этот формат обычно понимают многие программы, например электронные таблицы, в Windows. Поддержка dBase для любого экспорта или импорта данных хорошо выполняет эти условия.
dbase_create
dbase_create -- создать dBase базу данных
Описание
int dbase_create(string filename, array fields);
Параметр fields - это массив из массивов, каждый массив определяет формат одного поля в базе данных. Каждое поле состоит из имени, символа , указывающего тип поля, длины, и точность.
Доступные типы полей:
L |
Логическое. Не требует длину или точность. |
M |
Мемо. (Помните, что они не поддерживаются в PHP.) Не требует длину или точность. |
D |
дата (сохраненная как ГГГГММДД). Не требует длину или точность. |
N |
Числовое. Это поле имеет и длину и точность(количество цифр после десятичной точки). |
C |
Строка. Имеет длину и не требует точность. |
Если создание базы данных успешно, то возвращает dbase_identifier(идентификатор базы данных), в противном случае возвращает false(ложь).
Пример 1. Создание dBase базы данных // "database" имя $dbname = "/tmp/test.dbf";
// определяем поля $def = array( array("date", "D"), array("name", "C", 50), array("age", "N", 3, 0), array("email", "C", 128), array("ismember", "L") );
// создаем if (!dbase_create($dbname, $def)) print "<strong>Error!</strong>"; |
dbase_open
dbase_open -- открыть dBase базу данных
Описание
int dbase_open(string filename, int flags);
Параметр flags используется для системного вызова open(). (Обычно 0 только для чтения, 1 только для записи, и 2 для записи и чтения.)
Возвращает dbase_identifier(идентификатор базы данных) для открытой базы данных, или false(ложь) если база данных не была открыта.
Извлекать записи следует при помощи функций dbase_get_record() или dbase_get_record_with_names(). Первая возвращает обычный массив, вторая ассоциативный, где ключи - имена столбцов.
<?php // Открываем созданный dbf-файл $dbh = dbase_open("tbl.dbf",2) or die("Ошибка - невозможно открыть '$db_name'"); // Читаем 5 запись в массив $arr $arr = dbase_get_record($dbh, 5); // Закрываем dbf-файл dbase_close($dbh); ?> |
Второй параметр функции dbase_open() означает режим доступа к файлу: 0 - только для чтения, 1 - только для записи, 2 - и для чтения и для записи.
dbase_close
dbase_close -- закрыть dBase базу данных
Описание
bool dbase_close(int dbase_identifier);
Закрыть базу данных, связанную с dbase_identifier.
dbase_pack
dbase_pack -- упаковывает dBase базу данных
Описание
bool dbase_pack(int dbase_identifier);
Упаковывает определенную базу данных (удаляет все записи, помеченные для удаления с помощью dbase_delete_record().
dbase_add_record
dbase_add_record -- добавляет запись в dBase базу данных
Описание
bool dbase_add_record(int dbase_identifier, array record);
Добавляет данные из record в базу данных. Если количество полей в заданном record не идентично количеству полей в базе данных, то операция будет прервана и будет возвращено false(ложь).
1. if (!dbase_add_record($dbid, array($rec[1],$rec[2])))
echo "Failed to add a record. ";
2.$dbh = dbase_open("out.dbf",2) or die("Ошибка - невозможно открыть '$db_name'"); $record = array( $table['data'], $table['numer'], $table['podrazd'], $table['uchastok'], $table['mehanizm'], $table['kol_vo'], $table['usl_podr'], $table['usl_uch'] ); if(!dbase_add_record($dbh,$record)) { echo "Ошибка при добавлении записи в dbf"; exit(); } dbase_close($dbh);
3.
$bd = dbase_open ("C:\\Apache2\\htdocs\\BD\\2004_Zl_SP1.DBF", 2);
$arr_to_bd[0] = $_GET['index'];
$arr_to_bd[1] = convert_cyr_string ($_GET['name'], w, a);
$arr_to_bd[2] = $_GET['amount'];
$arr_to_bd[3] = $_GET['01'];
$arr_to_bd[4] = $_GET['02'];
$arr_to_bd[5] = $_GET['03'];
$arr_to_bd[6] = $_GET['04'];
$arr_to_bd[7] = $_GET['05'];
$arr_to_bd[8] = $_GET['06'];
$arr_to_bd[9] = $_GET['07'];
$arr_to_bd[10] = $_GET['08'];
$arr_to_bd[11] = $_GET['09'];
$arr_to_bd[12] = $_GET['10'];
$arr_to_bd[13] = $_GET['11'];
$arr_to_bd[14] = $_GET['12'];
$arr_to_bd[15] = $_GET['smsp'];
$arr_to_bd[16] = $_GET['month'];
$arr_to_bd[17] = $_GET['year'];
//$records_counter = dbase_numrecords( $bd);
dbase_add_record ($bd, $arr_to_bd);
//dbase_replace_record ($bd, $arr_to_bd, $records_counter);
dbase_delete_record
dbase_delete_record -- удалить запись из dBase базы данных