- •Разработка приложений для Web-сервера (без работы с бд)
- •Цель работы
- •Содержательная и формальная постановки задачи
- •Содержательная постановка задачи
- •Формальная постановка задачи
- •Языки разметки, программирования и каскадные таблицы стилей
- •Протокол передачи данных
- •Подходы к построению интерфейсов web-приложений
- •Структура решения
- •Генерация html-страниц
- •Обмен данными между клиентом и сервером
- •Реализация логики приложения
- •Обзор и анализ методов решения
- •Генерация html-страниц
- •Хранение данных на сервере и доступ к ним
- •Обмен данными между клиентом и сервером
- •Реализация логики приложения
- •Описание реализации применяемых методов
- •Хранение данных на сервере и доступ к ним, используемые переменные
- •Укрупненный алгоритм
- •Определить, свободен ли данный логин
- •Определить, совпадают ли логин и пароль с учетной записью
- •Создание новой учетной записи
- •Сохранение в файл новой записи
- •Редактирование записей
- •Удаление записей
- •Реализация логики приложения
- •Укрупненный алгоритм
- •Регистрация пользователя
- •Используемые функции и конструкции языка
- •Структура файлов
- •Руководство пользователя
Укрупненный алгоритм
Определить, свободен ли данный логин
bool is_login_free(string login), где
login - искомый логин.
Открыть файл users.txt в режиме чтения
file fp = fopen("users.txt",'r');
Прочитать строки из файла и занести в массив massLogins части строк до пробела(логины)
i = 1;
пока (!feof(fp))
massLogins[i] = explode(‘ ‘, fgets(fp))[1];
i++;
конец
Закрыть файл
fclose(fp);
Сравнить входной логин с элементами массива massLogins
цикл по i = 1 до massLogins.lehgth
если login = massLogins[i] то
вернуть false
конец
конец
Если совпадений не найдено то возвращаем true
вернуть true
Определить, совпадают ли логин и пароль с учетной записью
bool enter(string login, string password), где
login - логин, password – пароль.
Открыть файл users.txt в режиме чтения
file fp = fopen("users.txt",'r');
Прочитать строки из файла и занести в массив massLogins части строк до пробела(логины) и в массив massPass части строк после пробела (пароли)
i = 1;
пока (!feof(fp))
massLogins[i] = explode(‘ ‘, fgets(fp))[1];
massPass[i] = explode(‘ ‘, fgets(fp))[2];
i++;
конец
Закрыть файл
fclose(fp);
Сравнить входной логин с элементами массива massLogins, пароль – с элементами массива massPass
цикл по i = 1 до massLogins.lehgth
если (login = massLogins[i] & password = massPass[i]) то
вернуть true
конец
конец
Если совпадений не найдено то возвращаем false
вернуть false
Создание новой учетной записи
register (string login, string password), где
login - логин,
password - пароль.
Открыть файл users.txt в режиме дозаписи
file fp = fopen("users.txt",'r');
Сформировать строку из логина и пароля через пробел
text = login . " " . password;
Записать строку в файл
reg = fwrite(fp, text);
Закрыть файл
fclose(fp);
Проверяем, была ли выполнена запись в файл
Если (reg) то
“Вы успешно зарегистрированы”;
иначе
“Ошибка при регистрации”;
конец
Сохранение в файл новой записи
send_post(string login, string post), где
login - логин,
post – запись пользователя
Открыть файл comments.txt в режиме дозаписи
file fp = fopen("comments.txt",'r');
Сформировать строку из логина и записи через тильду
text = login . "~" . post;
Записать строку в файл
reg = fwrite(fp, text);
Закрыть файл
fclose(fp);
Проверяем, была ли выполнена запись в файл
Если (reg) то
обновить страницу;
иначе
“Ошибка при записи”;
конец
Редактирование записей
edit_post(int i, string new_post), где
i – индекс записи, которая была подвергнута изменению,
new_post – отредактированная запись.
Поместим содержимое файла comments.txt в массив file
file = file('comments.txt');
Перезаписываем строку
file[i] = post.PHP_EOL;
Перезаписываем файл
file_put_contents('comments.txt', join('', file));
