|
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 2
|
||||||
Нужна критика :)28.07.2016, 23:26. Показов 654. Ответов 5
Метки нет (Все метки)
Всем привет!
Дело такое, изучаю php, сравнительно недавно. Начал писать скрипт регистрации на сайт и вот хочу услышать критику по коду. Где что не так, может где то недопустимо так делать как я делаю ![]()
)
0
|
||||||
| 28.07.2016, 23:26 | |
|
Ответы с готовыми решениями:
5
Нужна критика скрипта Нужна критика по готовому и рабочему скрипту PHP Поиск, критика привествуется |
|
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
|
|
| 28.07.2016, 23:31 | |
|
Для начала неплохо. Сразу читайте про PSR, а именно про оформление кода. Уже пора избавляться от require там, где не нужно, а реализовывать загрузчик и использовать namespace.
0
|
|
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
| 28.07.2016, 23:52 | |
|
А после полного изучения основ переходит к паттернам проектирования
0
|
|
|
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 2
|
|
| 29.07.2016, 00:00 [ТС] | |
|
Все понятно) спасибо!
0
|
|
|
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
|
||||||
| 29.07.2016, 00:10 | ||||||
|
Vampqwe, и да, забыл самое главное. Книги!
https://www.ozon.ru/context/detail/id/33506422/ - киллер книга, сам если честно так и не осилил ее, потому что банально не хватает времени, а читать нужно очень вдумчиво. Второе - официальная дока. Третье - SOLID Четвертое - PSR Судя по вашему коду, у меня есть вопросы относительно работы с базой данных. Вы используете обертку над MySQLi? Дело в том, что mysql (без i) уже использовать не рекомендуется, а если выбирать между MySQLi и PDO, выбирайте сразу PDO. Он используется во всех крупных фреймворках, например в Yii2. Не подставляйте переменные сразу в SQL запрос, таким образом вы избежите неприятности в виде SQL-Injection. Статья: https://habrahabr.ru/post/137664/ Затем у меня есть вопросы по поводу функции checking(); Возьмите за правило, что функция должна возвращать только один тип значения, в крайнем случае (что распространено) это должно быть null. По логике, функция checking должна возвращать true или false, вы же выбрасываете исключение, что не совсем корректно. Обработать ошибки можно методом getErrors(), который вернет массив ошибок. Т.е. проверку ввода я бы вынес в отдельный класс, который назвал бы RegValidation.php, вот его примерный интерфейс:
Далее вопросы относительно функции db() Подключать файлы PHP в теле функции нужно только в одном случае: если вы делаете шаблонизатор или View. Все, для других целей уже много лет существуют namespace и автозагрузчик, который за вас решит, откуда загружать файл. Вы при каждом вызове делаете соединение с базой данных. Сделайте класс Connection, в котором будет храниться соединение с базой данных и используйте его во всех местах, где нужно, не надо делать 10 соединений, так как на хостингах они ограничены. И последнее. Один класс == одно действие. Класс User должен отвечать за данные пользователя, класс UserBalance за баланс пользователя (как пример) и так далее. У вас не ясно, какая основная направленность класса. Из названия класса уже должно быть понятно, что это. Класс Request отвечает за запросы от пользователя (POST | GET), но никак не за ответ от сервера. А за что отвечает класс RegLog? Наверное за логгирование регистраций пользователя. И в конце добавлю - читайте исходные коды фреймворков, как обычную книгу. Их умные дядьки писали, у них есть чему поучиться. ----- Вроде бы все. Написал сумбурно, все выше мое мнение и мой опыт, а также опыт и мнения более опытных людей.
0
|
||||||
|
79 / 48 / 22
Регистрация: 30.06.2016
Сообщений: 187
|
|||||||||||
| 29.07.2016, 00:40 | |||||||||||
|
просто рак мозга.
этого класса вообще не должно быть. должен быть класс пользователь. класс логин зачем от него наследуется? конструктор придется перезагружать, общих методов не будет, общего между ними ничего зачем он? что, в каждом методе, который использует БД, будете плодить объекты для работы с базой? strlen сулит проблемы с кодировкой > mb_strlen $_SERVER['REMOTE_ADDR'] - ваш сайт взломают. не вижу экранирования в sql - ваш сайт взломают. trim делают после strip_tags strip_tags делают чтобы вырезать теги. но вы же после этого делаете htmlspecialchars, теги все равно не будут обработаны на выводе, зачем тогда strip_tags? запретите тогда ненужные символы в логине, если хотите чтобы не писали билебирду в логинах функция date принимает на вход первым параметрам строку. Вот ваш коллега объявит константу "Y" и у Вас глаза на лоб вылезут.
0
|
|||||||||||
| 29.07.2016, 00:40 | |
|
Помогаю со студенческими работами здесь
6
Требуется критика по коду Нужна критика Нужна критика Нужна критика Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2.
Номеклатура. . .
|