Сам тулбар уже сделан. С вас создание акка и заливка в магазин. Оплата вебмани или киви
Доработка веб-приложения php+mysql
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
Есть маленькое веб-приложение php+mysqli mysql. Пользователь авторизуется, после чего просматривает единственную табличку с данными. Черновик приложения сделан, есть некоторое количество пожеланий по доработке.
Текущий объем кода 4 кб php в форме логина (107 строк), 10.7 кб php кода в основной форме (255 строк).
Таблица с данными в основной форме довольно сложная, но ее переделывать не надо.
Будет дан FTP доступ и доступ к PHP My Admin. Программист сдает работу на проверку, и финальную версию работы, заливая код на ФТП.
Оплата - Сбер, или ЯД, или обсуждается. Желательна постоплата без безопасной сделки. Аванс возможен, если у Вас много хороших отзывов. Если хотите, возможно разбиение работы на этапы, с отдельной оплатой каждого этапа.
Предполагаю объем работ 1-3 дня, стоимость от 5 до 20 тыс. руб., зависит от предложений.
Предполагается использование чистого php + js. jQuery _не_ используем. При желании, можно использовать реакт, но лучше без него. Для подключения в проект сторонних библиотек обязательно согласовать это с заказчиком, т.к. проект является частью корпоративной среды, и когда в каждом проекте фирмы свой набор библиотек/компонентов, это неправильно.
Доработки
1.1. В основной форме скролл влево-вправо должен менять дату ($_SESSION['current_dd']) на единицу. Сейчас скролл есть, но работает глючно. Надо или исправить существующий, или сделать новый, а старый удалить. Дата может меняться от $_SESSION['min_dd'] до $_SESSION['min_dd']+13 дней. При этом алгоритм формирования таблицы с данными в основной форме менять не надо.
2. Авторизация должна работать так: пользователь вводит email, нажимает кнопку, получает на указанный емэйл случайный числовой пароль, вводит полученный пароль, нажимает кнопку, авторизация завершается.
Сейчас авторизация работает, но есть ряд недоработок:
2.1. Форма ввода email и форма ввода пароля сейчас совмещены, а должны быть раздельными формами.
2.2. Старый пароль сейчас сбрасывается в момент отправки на почту нового пароля. Желательно, чтобы старый пароль сбрасывался в момент корректного ввода нового пароля пользователем. Т.е. если пользователь работает на 2 устройствах, то запрос пароля на втором устройстве не должен сразу же вырубать первое.
2.3. Сейчас срок действия авторизации никак не проверяется. Надо, чтобы пароль, который пользователь получил на почту, действовал 1 месяц (если пароль с тех пор не обновлялся).
2.4. Сейчас авторизация сделана через сессию. Если доступ должен жить месяц, то, может быть, имеет смысл переделать, чтобы авторизационные данные хранились в кукисах на стороне клиента ? Сессия вообще может месяц жить ?
2.5. Ограничение на кол-во попыток ввода пароля ("Допускается не более трех неудачных попыток ввода пароля. Вы будете возвращены к вводу email").
2.6. Ограничение на частоту отправки email ("Посылать себе новый пароль можно не чаще, чем раз в 5 минут. Следующая попытка будет доступна через **:**"). Не уверен, что этот пункт вообще нужен, но давайте сделаем
2.7. Крякозябры в письме. Сейчас письмо с паролем приходит ОК, тема письма при этом отображается по русски ОК, а в теле письма русские буквы отображаются крякозябрами. Надо исправить.
3. Натянуть верстку. Дизайнер нарисовал формы, верстальщик сверстал, надо все это дело натянуть на формы. Перечисляю формы: форма ввода логина, форма ввода пароля, диалоговые окна, шапка основной формы (логотип и надписи в шапке). Таблица в основной форме полностью сделана, в ней ничего менять не надо.
4. В основной форме отрабатывать двойной клик на заголовке (Текст "Выберите действие", кнопки "Отключиться" и "Обновить экран (аналогично скроллу вверх/вниз)")
5.1. Автообновление. В основной форме раз в 15 минут (частоту берем "SELECT const_val FROM constants where const_id=1") проверять наличие новых данных на сервере. Т.е. при выводе основной формы, сохраняем на фронт-энде хэш-сумму таблички. Раз в 15 минут фронт-энд посылает на сервер хэш-сумму, если она изменилась, то сервер возвращает табличку с новыми данными, если хэш-сумма не изменилась, то рефреш не делаем. Если браузер открыт в фоне (т.е. пользователь сейчас смотрит что-то другое, и не видит основную форму), то, наверное, имеет смысл проверку наличия новых данных отложить до того момента, когда пользователь в браузере вернется к закладке с основной формой.
5.2. Аналогичное действие (проверка наличия новых данных на сервере, и обновление, если есть новые данные) выполняется при скролле основной формы вверх или вниз.
5.3. Если при авторефреше основной формы если текущая дата ($_SESSION['current_dd']) меньше чем сегодняшнее число, задаем $_SESSION['current_dd']=Сегодня. Если при авторефреше минимальная дата $_SESSION['min_dd'] меньше чем сегодняшнее число, задаем $_SESSION['min_dd']=Сегодня.
6. В основной форме во второй строчке шапки выводится время последнего обновления данных. Надо сделать его разными цветами: 1) зеленый = данные обновлены менее 30 мин назад 2) желтый = данные обновлены от 30 мин до 24 часов назад 3) красный = данные обновлены более 24 часов назад.
7. Добавить параметр $_SESSION['inner_width'], равный внутренней ширине окна браузера в пикселях. Обеспечить его актуальность при логине и ресайзе. При ресайзе делать рефреш основной формы. При этом как-либо менять алгоритм вывода таблички не надо, я потом поменяю (будет меняться кол-во отображаемых колонок).
8. При необходимости, разбить index.php на несколько файлов. Например, можно js вынести из index.php в отдельный файл, и т.п. Этот пункт делать не обязательно, посмотреть, обсудить, если решим что надо, то сделать.
9. Проверить код на устойчивость к атакам. sql injection, и т.п. Минут 30 помедитировать над кодом на тему "можно ли это взломать". Если найдете уязвимости, и их можно легко исправить, то исправить. Если найдете уязвимости, которые исправить сложно, то обсудить стоимость доработки.
10. Авторизация через смс, вместо email. https://www.epochta.ru/products/sms/sms-api . Добавить в проект функцию, которая будет посылать заданную смс на заданный номер. function send_sms($phone_to, $sms_text); Переделать авторизацию, исходя из предположения, что пользователь может ввести или мэйл, или телефон. Если пользователь ввел мэйл, посылаем пароль письмом, если телефон, посылаем пароль в смс. Логин-пароль от epochta предоставляется после выбора исполнителя.
11. Дополнение: я спросил поставщика, они сказали, что если я хочу много одновременных пхп сессий поддерживать, то мне нужно на более дорогой аккаунт переходить. Т.е. желательно сессии использовать только для авторизации (получения токена), а после этого хранить кукис с токеном у клиента, без сессии
Выбранный исполнитель
Заявки фрилансеров
Похожие заказы
- Веб-программирование1 исполнительЗавершен4 года назад
Всем привет, есть сайт - мини магазин. Необходимо сделать бек (можно laravel или на чистом php) Фронт готов. Реализовать стандартный функционал добавления и удаления товаров, поля для SEO и тд. ТЗ скину ...
Веб-программирование1 исполнительЗавершен4 года назад- Веб-программирование18 заявокЗакрыт4 года назад
- $13
Есть примеры видео и список задач которые лежать в прикреплённом задании. Задача по учёбе. Реализовать только первую часть задания ! https://youtu.be/w_cHybf6jC0
Веб-программирование1 исполнительЗавершен4 года назад Добрый день! Нам нужен человек, имеющий опыт работы с WebAsyst. Нужно поработать с нашим сайтом: https://shinelife.ru/ Хотим ускорить процесс покупки до 3-х кликов, адаптировать сайт под мобильную версию + добавить возможность пользоваться ...
Веб-программирование4 заявкиЗакрыт4 года назадРазработка онлайн сервиса виртуальных мероприятий Задание в приложение Вопросы: 1. Сроки 2. Бюджет 3. Процесс работы над проектом распишите этапы и сроки и бюджет по ним 4. Когда можете ...
Веб-программирование6 заявокЗакрыт4 года назад- $20
Для сайта нужен второй язык (мультиязычность). Необходим скрипт для перевода самописного сайта с русского на другой язык.
Веб-программирование1 исполнительЗавершен4 года назад Скрипт который рандомизирует следующие атрибуты в HTML : (class, id), а также меняет старые селекторы в CSS на рандомные. Проблема: дизайн плывет. Новые атрибуты плохо встают в CSS.
Веб-программирование2 заявкиЗакрыт4 года назад- $110
1. Усовершенствовать превью результатов поиска https://prnt.sc/vu4hs3 С 1 по 3 строки выводить-отражать “Специализацию врачей” и в скобках количество врачей с данной специализацией Пример: набираем в поиске Карди В ...
Веб-программирование2 заявкиЗакрыт4 года назад Нужен php скрипт авторизации на online.sberbank.ru. Нужно чтобы скрипт зашел в мой личный кабинет сбера.
Веб-программирование1 заявкаЗакрыт4 года назад