Спасибо за замечания. Про дату не подумал что можно кривую вставить в эту форму. Ну а если без логаута, это получается при каждом щелчке прийдется класть число в базу? Просто как читал в ТЗ так в точности и написал... Валидацию добавлю на логин и пароль, и закину куда нибудь на хост, ок. --- Добавлено --- Не совсем понял это сообщение, все писал сам. Я понимаю если бы я в MVC забацал... а тут то
Код с учетом замечаний - https://github.com/AndreyGel/test Проверить можно здесь - https://test14042019.000webhostapp.com/
Если удалить дату, то такая штука выходит Код (Text): Notice: Undefined index: date in /storage/ssd5/517/9295517/public_html/register.php on line 6 Too young! Назад
Всё верно, слишком молод что бы удалять дату! =) Ну по идее в интересах пользователя зарегиться, а не удалять дату... Но я примерно понял как пофиксить этот баг, спасибо
Зарегистрируйся на сайтах фриланса, бери себе задания по цене 100 рублей(от заказов отбоя не будет) и выполняй. Я так и учился. Сам себе реально нужные и сложные задачи не поставишь. Через месяца 2 такой практики можешь попробовать себя в ценовой категории по выше, но там и спрос с тебя будет больше. Единственный совет перед началом работы делай резервную копию чтоб человеку сайт не похранить.
Ещё прикрепить на форму можно txt, zip >PHP 5 не советую. Актуальная версия PHP 7.x и она значительно отличается. Согласен
"Никогда не доверяй валидации на клиенте. Она нужна, но на сервере ты обязательно должен повторить." Золотые слова! А то я тут сижу и мучаюсь в чём проблема!
Здравствуйте! А мне можно тоже поучаствовать? https://github.com/alexkart-hub/log-reg-forms-02.git - тут код http://less.globusazov.ru - тут можно посмотреть, как работает
Решил почитать форум, уже после того, как выложил свою работу. И понял, что есть еще что делать. Завтра продолжу...
Код на гитхабе, а не архивом - это уже плюс ) PHP: $connect = mysqli_connect('localhost','root','','lessprojectbase'); Так делать не надо. Во-первых, пароли в гите хранить нельзя, во-вторых, у вас в каждом php-файле повторяется коннект к базе, будет разумно вынести это куда-нибудь в отдельный файл и получать из него уже готовый коннект. PHP: $user_username = mysqli_real_escape_string($connect,trim($_POST['username'])); $user_password = mysqli_real_escape_string($connect,trim($_POST['password'])); if(!empty($user_username) && !empty($user_password)){ $query = "SELECT id, login, figure FROM users WHERE login = '$user_username' AND password = SHA('$user_password')"; Подготовленные запросы - запрос отдельно, данные отдельно. p.s. а по самому тесту надо @Fell-x27 призывать )
Ну для этого запроса можно и оставить, только сравнение паролей/хэшей вынести из запроса, что мы недавно обсуждали тут. --- Добавлено --- @Александр Петрович, существование процитированных выше POST-параметров проверяется?
@Александр Петрович, сразу приучайтесь правильно работать с паролями. https://www.php.net/manual/ru/function.password-hash.php https://www.php.net/manual/ru/function.password-needs-rehash.php https://www.php.net/manual/ru/function.password-verify.php SHA, MD5 уже давно подбираются по радужным таблицам. А поскольку обнаружилось, что мы, программисты на PHP, в общей массе работали с паролями как попало, разработчики языка ввели вот эти удобные функции, в которые уже зашита и соль, и регуляция сложности алгоритма, и много чего ещё. --- Добавлено --- P.S. Надеюсь вы не работаете со столь старыми версиями php, которые не содержат этих функций
@mkramer, там поначалу даже с этими ф-циями было не все гладко. Сейчас наверное исправили. P.S. Ссылку сходу не найду А? Что? У нас до сих пор в требованиях минималка – 5.4, так что приходится думать И это еще при том, что пишем в основном для себя.
--- Добавлено --- @Александр Петрович, существование процитированных выше POST-параметров проверяется?[/QUOTE] Если имеется ввиду Код (Text): if(isset($_POST['submit'])){ , то да, проверяется.
Спасибо за подсказку. Знал, что MD5 уже не рекомендуется использовать, но не знал, что использовать. Только начал изучать php, масса инфы, не знаю, за что хвататься. Сегодня изучу вопрос хэширования паролей поподробнее. Насчет версии php - поставил себе последний OpenServer, в настройках поставил версии: Apachi-2.4 php-7.3 MySQL-8.0
Ну, я считаю что это примерно так же как с экранированием вывода, ты либо делаешь так, что это будет происходить везде по умолчанию, либо сам себе злобный буратино ) Может быть в некоторых случаях можно делать и без этого, но если в стандартном flow тебе нужно каждый раз делать выбор способа, рано или поздно ошибешься. Как-то так, короче.
Начните сразу с изучения Laravel - сэкономите кучу времени за счет отсекания лишних сущностей, которые в реальной разработке не нужны. например начните с этого: https://laravel.ru/posts/49
Нужно проверять все используемые параметры. А кнопку как раз-таки можно не проверять, если в этом нет явной необходимости. P.S. Я про параметры, процитированные romach'ем.
https://github.com/alexkart-hub/log-reg-forms-02.git http://less.globusazov.ru Немного переделал. Изменил хеширование пароля и его проверку. Исправил регистрацию - теперь после регистрации осуществляется авторизация. Вынес подключение к базе в отдельный файл. А насчет подготавливаемого запроса: пока не стал переделывать, так как у меня реализовано подключение процедурным способом, а подготавливаемый запрос осуществить можно только через объект, тогда придётся переделывать всё; так что пока не стал. Да и не вижу особого смысла в этом - проще в данной ситуации пользоваться простыми запросами - меньше кода писать. Это моё мнение, может я и не прав... --- Добавлено --- POST-параметры я не проверяю. Исправлю в следующий заход.