Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
avs2 - пз.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
306.9 Кб
Скачать
        1. Удаление записей

del_post(int i), где

i – индекс записи.

  1. Поместим содержимое файла comments.txt в массив file

file = file('comments.txt');

  1. Удаляем нужную строку

unset(file[i]);

  1. Перезаписываем файл

file_put_contents("comments.txt", implode("", file));

    1. Реализация логики приложения

Алгоритмы логики приложения тесно связаны с доступом к ресурсам и могут использовать функции, определенные в предыдущем разделе. Задачи формирования страницы также тесно связаны с логикой приложения, однако не входят в нее, поэтому алгоритм формирования и вывода не будет детализирован. Запись "Сформировать и вывести страницу ..." лишь указывает, какие изменения должны быть представлены пользователю приложения после выполнения очередного логического действия. При детализации заменим эти записи на "put_page(...)" - функцию отправки некоторой страницы клиенту.

Обозначим Session - глобальный ассоциативный массив, в котором хранятся текущие данные аутентификации. Он доступен в любой части программы.

Будем использовать следующие стандартные функции:

  • empty(string) – проверяем строку на «пустоту»,

  • exit – выводит сообщение и прекращает выполнение скрипта.

Далее приведены алгоритмы подзадач:

      1. Укрупненный алгоритм

        1. Регистрация пользователя

Входные параметры: login – логин, password – пароль.

Если (empty(login) or empty(password)) то

exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");

иначе

если (is_login_free(login)) то

register(login, password);

put_page(…);

конец

конец

        1. Вход

Входные параметры: login – логин, password – пароль.

Если (empty(login) or empty(password))

exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");

иначе

если (enter(login, password)) то

если (login = “admin”)

Session[1] = “admin”;

Session[2] = login;

put_page(…);

иначе

Session[1] = “user”;

Session[1] = login;

put_page(…);

конец

конец

конец

        1. Добавление записи

Входной параметр post – запись.

send_post(Session[2],post);

put_page(…);

        1. Редактирование записи

Входные параметры i – индекс записи и new_post – отредактированная запись

edit_post(int i, string new_post);

put_page(…);

        1. Удаление записи

Входные параметры i – индекс записи.

del_post(int i);

put_page(…);

  1. Руководство программиста

    1. Сервер

Приложение писалось на локальном Web-сервере – Denwer, обладающем следующими характеристиками (все компоненты ставятся автоматически):

Сервер – Apache 2.2.22 + SSL

Язык – PHP 5.3.13

База данных – MySQL 5.5

Хранение данных в приложении реализовано без базы данных.

    1. Используемые функции и конструкции языка

Опишем все стандартные функции PHP, используемые в приложении.

Метод

Описание

array file ( string $filename [, int $flags = 0 [, resource $context ]] )

filename - Путь к файлу

flags - В качестве необязательного параметра flags может можно указать одну или более следующих констант

FILE_USE_INCLUDE_PATH

Ищет файл в include_path.

FILE_IGNORE_NEW_LINES

Не добавлять новую строку к концу каждого элемента массива

FILE_SKIP_EMPTY_LINES

Пропускать пустые строки

Context - Ресурс контекста, созданный функцией stream_context_create().

Возвращает файл в виде массива. Каждый элемент массива соответствует строке файла, с символами новой строки включительно. В случае ошибки file() возвращает FALSE.

array explode ( string $delimiter , string $string [, int $limit ] )

delimiter - Разделитель.

string - Входная строка.

limit - Если аргумент limit является положительным, возвращаемый массив будет содержать максимум limit элементов, при этом последний элемент будет содержать остаток строки string.

Возвращает массив (array) строк (string), созданный делением параметра string по границам, указанным параметром delimiter.

Если delimiter является пустой строкой (""), explode() возвращает FALSE. Если delimiter не содержится в string, и используется отрицательный limit, то будет возвращен пустой массив (array), иначе будет возвращен массив, содержащий string.

resource fopen ( string $filename , string $mode)

Если PHP установлено, что filename указывает на локальный файл, тогда выполняется попытка открыть поток к этому файлу.

mode - Параметр mode указывает тип доступа, который вы запрашиваете у потока.

'r' - Открывает файл только для чтения; помещает указатель в начало файла.

'w' - Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует - пробует его создать.

'a' - Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует - пытается его создать.

закрепляет именованный ресурс, указанный в аргументе filename, за потоком.

int fwrite ( resource $handle , string $string [, int $length ] )

handle - Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

string - Записываемая строка.

length - Если передан аргумент length, запись остановится после того, как length байтов будут записаны или будет достигнут конец строки string, смотря что произойдёт первым.

fwrite() записывает содержимое string в файловый поток handle.

fwrite() возвращает количество записанных байт или FALSE в случае ошибки.

bool fclose ( resource $handle )

handle - Дескриптор должен быть корректным и указывать на файл, открытый ранее с помощью функции fopen() или fsockopen().

Функция закрывает файл, на который указывает дескриптор handle.

void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

string - Строка заголовка.

replace - Необязательный параметр replace определяет, надо ли заменять предыдущий аналогичный заголовок или заголовок того же типа. По умолчанию заголовок будет заменен, но если передать FALSE, можно задать несколько однотипных заголовков. Например:

http_response_code - Принудительно задает код ответа HTTP. Следует учитывать, что это будет работать, только если строка string не является пустой.

header() используется для отправки HTTP заголовка. В » спецификации HTTP/1.1 есть подробное описание HTTP заголовков.

Помните, что функцию header() можно вызывать только если клиенту еще не передавались данные. То есть она должна идти первой в выводе, перед ее вызовом не должно быть никаких HTML тэгов, пустых строк и т.п. Довольно часто возникает ошибка, когда при чтении кода файловыми функциями, вроде include или require, в этом коде попадаются пробелы или пустые строки, которые выводятся до вызова header(). Те же проблемы могут возникать и при использовании одиночного PHP/HTML файла.

bool file_exists ( string $filename )

filename - Путь к файлу или каталогу.

Возвращает TRUE, если файл или каталог, указанный параметром filename, существует, иначе возвращает FALSE.

bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false]] )

pathname - Путь к директории.

mode - По умолчанию принимает значение 0777, что означает самые широкие права. Больше информации о режимах доступа можно узнать на странице руководства функции chmod().

recursive - Разрешает создание вложенных директорий, указанных в pathname.

Пытается создать директорию, заданную в pathname. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

bool is_numeric ( mixed $var )

var - Проверяемая переменная.

Возвращает TRUE, если var является числом или строкой, содержащей число, в противном случае возвращается FALSE.

bool unlink ( string $filename )

filename - Путь к файлу.

Удаляет файл filename. Функция похожа на функцию unlink() Unix C. В случае ошибки будет сгенерирована ошибка уровня E_WARNING.

void echo ( string $arg1 [, string $... ] )

Выводит все аргументы.

На самом деле echo - это не функция, а конструкция языка, поэтому заключать аргументы в скобки необязательно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]