За последние 24 часа нас посетили 8766 программистов и 478 роботов. Сейчас ищет 251 программист ...

Как быстро освоить PHP

Тема в разделе "PHP для новичков", создана пользователем fenix_63, 16 мар 2015.

  1. resident01

    resident01 Новичок

    С нами с:
    13 дек 2018
    Сообщения:
    4
    Симпатии:
    0
    Спасибо за замечания. Про дату не подумал что можно кривую вставить в эту форму.
    Ну а если без логаута, это получается при каждом щелчке прийдется класть число в базу? Просто как читал в ТЗ так в точности и написал...
    Валидацию добавлю на логин и пароль, и закину куда нибудь на хост, ок.
    --- Добавлено ---
    Не совсем понял это сообщение, все писал сам. Я понимаю если бы я в MVC забацал... а тут то
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    7.718
    Симпатии:
    1.497
    Никогда не доверяй валидации на клиенте. Она нужна, но на сервере ты обязательно должен повторить.
     
  3. resident01

    resident01 Новичок

    С нами с:
    13 дек 2018
    Сообщения:
    4
    Симпатии:
    0
  4. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.044
    Симпатии:
    165
    Если удалить дату, то такая штука выходит

    Код (Text):
    1. Notice: Undefined index: date in /storage/ssd5/517/9295517/public_html/register.php on line 6
    2. Too young!
    3. Назад
     
    mkramer нравится это.
  5. resident01

    resident01 Новичок

    С нами с:
    13 дек 2018
    Сообщения:
    4
    Симпатии:
    0
    Всё верно, слишком молод что бы удалять дату! =)
    Ну по идее в интересах пользователя зарегиться, а не удалять дату... Но я примерно понял как пофиксить этот баг, спасибо
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    7.718
    Симпатии:
    1.497
    @resident01, сейчас @Fell-x27 придёт и ещё и не такие штуки будет вытворять :)
     
  7. Z_Rinat_Z

    Z_Rinat_Z Новичок

    С нами с:
    2 июл 2019
    Сообщения:
    5
    Симпатии:
    0
    Зарегистрируйся на сайтах фриланса, бери себе задания по цене 100 рублей(от заказов отбоя не будет) и выполняй. Я так и учился. Сам себе реально нужные и сложные задачи не поставишь. Через месяца 2 такой практики можешь попробовать себя в ценовой категории по выше, но там и спрос с тебя будет больше. Единственный совет перед началом работы делай резервную копию чтоб человеку сайт не похранить.
     
  8. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    6.521
    Симпатии:
    1.035
    Адрес:
    Лень
    номера тем с "помощью"
    2019-07-02_10-45-34.png
     
  9. Таська

    Таська Новичок

    С нами с:
    21 сен 2018
    Сообщения:
    15
    Симпатии:
    0
    Откуда вы такие лезете?
     
  10. Brookhaven

    Brookhaven Новичок

    С нами с:
    19 сен 2019
    Сообщения:
    2
    Симпатии:
    0
    Адрес:
    Российская Федерация, Иваново
    Ещё прикрепить на форму можно txt, zip
    >PHP 5 не советую. Актуальная версия PHP 7.x и она значительно отличается.
    Согласен
     
  11. Мариша*

    Мариша* Новичок

    С нами с:
    8 сен 2019
    Сообщения:
    7
    Симпатии:
    2
    "Никогда не доверяй валидации на клиенте. Она нужна, но на сервере ты обязательно должен повторить."

    Золотые слова! А то я тут сижу и мучаюсь в чём проблема!
     
  12. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.636
    Симпатии:
    424
    Адрес:
    РД, г. Махачкала.
  13. Александр Петрович

    С нами с:
    14 ноя 2019
    Сообщения:
    6
    Симпатии:
    0
  14. Александр Петрович

    С нами с:
    14 ноя 2019
    Сообщения:
    6
    Симпатии:
    0
    Решил почитать форум, уже после того, как выложил свою работу. И понял, что есть еще что делать. Завтра продолжу...
     
  15. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    716
    Код на гитхабе, а не архивом - это уже плюс )

    PHP:
    1. $connect = mysqli_connect('localhost','root','','lessprojectbase');
    Так делать не надо. Во-первых, пароли в гите хранить нельзя, во-вторых, у вас в каждом php-файле повторяется коннект к базе, будет разумно вынести это куда-нибудь в отдельный файл и получать из него уже готовый коннект.

    PHP:
    1. $user_username = mysqli_real_escape_string($connect,trim($_POST['username']));
    2.     $user_password = mysqli_real_escape_string($connect,trim($_POST['password']));
    3.     if(!empty($user_username) && !empty($user_password)){
    4.       $query = "SELECT id, login, figure FROM users WHERE login = '$user_username' AND password = SHA('$user_password')";
    Подготовленные запросы - запрос отдельно, данные отдельно.

    p.s. а по самому тесту надо @Fell-x27 призывать )
     
  16. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    2.717
    Симпатии:
    432
    Ну для этого запроса можно и оставить, только сравнение паролей/хэшей вынести из запроса, что мы недавно обсуждали тут.
    --- Добавлено ---
    @Александр Петрович, существование процитированных выше POST-параметров проверяется?
     
  17. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    7.718
    Симпатии:
    1.497
    @Александр Петрович, сразу приучайтесь правильно работать с паролями.
    SHA, MD5 уже давно подбираются по радужным таблицам. А поскольку обнаружилось, что мы, программисты на PHP, в общей массе работали с паролями как попало, разработчики языка ввели вот эти удобные функции, в которые уже зашита и соль, и регуляция сложности алгоритма, и много чего ещё.
    --- Добавлено ---
    P.S. Надеюсь вы не работаете со столь старыми версиями php, которые не содержат этих функций
     
  18. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    2.717
    Симпатии:
    432
    @mkramer, там поначалу даже с этими ф-циями было не все гладко. Сейчас наверное исправили. P.S. Ссылку сходу не найду :)

    А? Что? :eek: У нас до сих пор в требованиях минималка – 5.4, так что приходится думать :) И это еще при том, что пишем в основном для себя.
     
  19. Александр Петрович

    С нами с:
    14 ноя 2019
    Сообщения:
    6
    Симпатии:
    0
    --- Добавлено ---
    @Александр Петрович, существование процитированных выше POST-параметров проверяется?[/QUOTE]

    Если имеется ввиду
    Код (Text):
    1. if(isset($_POST['submit'])){
    , то да, проверяется.
     
  20. Александр Петрович

    С нами с:
    14 ноя 2019
    Сообщения:
    6
    Симпатии:
    0
    Спасибо за подсказку. Знал, что MD5 уже не рекомендуется использовать, но не знал, что использовать. Только начал изучать php, масса инфы, не знаю, за что хвататься. Сегодня изучу вопрос хэширования паролей поподробнее.
    Насчет версии php - поставил себе последний OpenServer, в настройках поставил версии:
    Apachi-2.4
    php-7.3
    MySQL-8.0
     
  21. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    7.718
    Симпатии:
    1.497
    Александр Петрович нравится это.
  22. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    716
    Ну, я считаю что это примерно так же как с экранированием вывода, ты либо делаешь так, что это будет происходить везде по умолчанию, либо сам себе злобный буратино ) Может быть в некоторых случаях можно делать и без этого, но если в стандартном flow тебе нужно каждый раз делать выбор способа, рано или поздно ошибешься. Как-то так, короче.
     
    Александр Петрович нравится это.
  23. Roman __construct

    [ БАН ]

    С нами с:
    27 апр 2019
    Сообщения:
    1.273
    Симпатии:
    113
    Начните сразу с изучения Laravel - сэкономите кучу времени за счет отсекания лишних сущностей, которые в реальной разработке не нужны.

    например начните с этого: https://laravel.ru/posts/49
     
  24. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    2.717
    Симпатии:
    432
    Нужно проверять все используемые параметры. А кнопку как раз-таки можно не проверять, если в этом нет явной необходимости.

    P.S. Я про параметры, процитированные romach'ем.
     
    Александр Петрович нравится это.
  25. Александр Петрович

    С нами с:
    14 ноя 2019
    Сообщения:
    6
    Симпатии:
    0
    https://github.com/alexkart-hub/log-reg-forms-02.git
    http://less.globusazov.ru
    Немного переделал. Изменил хеширование пароля и его проверку. Исправил регистрацию - теперь после регистрации осуществляется авторизация. Вынес подключение к базе в отдельный файл.
    А насчет подготавливаемого запроса: пока не стал переделывать, так как у меня реализовано подключение процедурным способом, а подготавливаемый запрос осуществить можно только через объект, тогда придётся переделывать всё; так что пока не стал. Да и не вижу особого смысла в этом - проще в данной ситуации пользоваться простыми запросами - меньше кода писать. Это моё мнение, может я и не прав...
    --- Добавлено ---
    POST-параметры я не проверяю. Исправлю в следующий заход.