School PHP

Урок 16: Фильтрация данных, $_COOKIE, $_SESSION

План:

  • Фильтрация данных
  • Безопасность при include
  • filter_var для адресов и email
  • int, float - для чисел
  • in_array для определённых множественных вариантов
  • $_COOKIE: Чтение, создание, редактирование и удаление
  • $_SESSION: Чтение, создание, редактирование и удаление

Домашка:

Выполнить 3 задания. Первое обязательное, 2 и 3 по желанию, в том числе и на выбор. Каждая из задачек проходит определённый пройденный материал. Тот, кто решит все 3 - будет знать все 3 темы хорошо.
Важное замечание, не используйте структуру из 15-ого урока в этой домашке, она вам не нужна, а только создаст дополнительные проблемы. Как склеить структуру из 15 и код из 16-ого будет рассказано в 17-ом уроке!

1. Форму для авторизации и выход


Делается достаточно просто, простая форма на ввод логина, пароли и email. Далее проверяем сначало на то, что заполнили поля, и email заполнили верно! После авторизации - запоминать ключ в куках. Выводить на экране. Для email: filter_var. Последнее поле меню: ВЫХОД!

2. Битва алкоголиков:



Мини-игра, цель которой показать, что алкоголизм - это плохо. Мы создаём страничку /index.php?page=game1 под игру. Создаются 2 персонажа, у обоих по 10хп (2 сессионных переменных), создаётся форма, где пользователь вводит число от 1 до 3 и отправляет запрос на сервер. На сервере запустить rand(1,3), и если значение человека с значением случайным совпадает, то снимаются ХП с персонажа человека (клиента), если не совпадают - с серверного персонажа. Отнимать надо от 1 до 4хп, случайным образом). То есть вероятность 33%, что отнимутся у клиента, и 66%, что у серверного персонажа.
В момент, когда у одного из персонажей ХП становится 0 и ниже, - перебрасывать на другую страницу при помощи переадресации (header) на страницу index.php?page=game1over , и выводить текст, победил ли игрок, или система.

Цели игры: разобраться в сессиях и переадресациях. Попробовать на практике изученную самостоятельно функцию rand();

3. Файловый менеджер



Простая файловая система на подобии norton-comander, far, FileZilla с упрощенной версией.
Её путь будет: index.php?page=program1 .
Необходимо:
1) вывести каталог папок и файлов для данной директории, используя scandir('.'). Перед названием выводить иконку папки, или иконку файла соответственно. Проверку делать на: is_dir() - else.
2) Папки сделать кликабельными, через ссылку передавать второй аргумент - путь к файлу по примеру: <a href="/index.php?page=program1&link=echo (isset($link) ? $link.'/'.$v :$v);">имя папки</a> . Данный путь будет содержаться в массиве после использования функции scandir.
3) По переходу по ссылке будет передаваться $_GET['link'], который необходимо будет подставить в функцию scandir для того, чтобы отобразить файлы и папки внутри конкретной директории.
4) Таким образом мы сможем воссоздать файловую систему и передвигаться по директориям и поддиректориям.

Цели программы: изучить новые функции + цикл с массивом и множества аргументов для $_GET.

Войти | Регистрация