• Кастомные вход и регистрация на сайт WordPress. Как обработать условие «is_wp_error»?

    avprinciple, лол) как добавили? do_action( 'wp_login', sanitize_user($_POST['user_name']), 9 ) наверное? :)
  • Что то намудрил с циклом WP_Query в чем ошибка?

    Дмитрий, пробел там до лампочки, это валидный код.

    А по сути +1, зачем лишний счетчик если есть встроенный в $query->current_post
  • Кастомные вход и регистрация на сайт WordPress. Как обработать условие «is_wp_error»?

    avprinciple,
    Fatal error: Uncaught ArgumentCountError: Too few arguments to function mo_openid_link_account(), 1 passed

    Фатальная ошибка: Исключение ОшибкаКоличестваАргументов: Слишком мало аргументов передано в функцию mo_openid_link_account(), передано 1
    Что вполне логично - вы же сами пишете что сигнатура функции:

    mo_openid_link_account( $username, $user )

    Ей нужно 2 параметра, $username и $user. Собственно, это же и в хуке явно указано:

    add_action( 'wp_login', 'mo_openid_link_account', 9, 2);


    Экшн wp_login, коллбек mo_openid_link_account, приоритет 9, передать 2 аргумента.

    Соответственно, нужно:
    do_action( 'wp_login', sanitize_user($_POST['user_name']), $user );

    где:
    string $username
    WP_User $user
  • Есть ли такой плагин для wordpress?

    Евгений, будьте добры ознакомиться с правилами Тостера и не хамить. Вы нарушили пункт 3.2 самым явным образом. Ваше "суть его я думаю понятна" - неприемлемая формулировка. Потому что то, что понятно вам в контексте вашей задачи, сторонним людям не понятно от слова совсем.

    по поводу догадаться, если уж я скинул ссылку, то не сложно ведь, посмотреть ее и перейти по паре ссылок

    Перейти сложно. Объясню почему. Вам самому реально лень потратить пару минут СВОЕГО времени, чтобы детально сформулировать вопрос, но от других, незнакомых вам людей вы ждете того, что они потратят СВОЕ время на вникание в ВАШУ проблему. Это крайнее проявление неуважения к чужому времени. Волонтерскому кстати, мы вам тут ничем не обязаны и денег нам вы не платите.

    Ну а хамить в ответ, когда вам указали на вашу недоработку - это ни в какие ворота. Поэтому лично я себе сделал пометочку и на ваши вопросы в этом разделе отвечать не буду. Была бы на Тостере фича бана, улетели бы туда навечно.
  • Есть ли в mac OS какая-то функция проверки файлов системы на целостность?

    weranda, Тогда вполне возможно что дело не в системе, а в том, что приложение чуток устарело и не учитывает какие-то новшества Mojave / более свежего Swift.
  • Есть ли в mac OS какая-то функция проверки файлов системы на целостность?

    Андрей Горбунов, да, но имхо если человек не в курсе об этом до сих пор, то он явно не из тех, кто любит в системе ковыряться. Почти все что в CleanMyMac есть можно из командной строки делать, но UI многим больше заходит. Конкретно эта софтина закрывает сразу много вопросов, поэтому отличный вариант.
  • Почему у меня не получается обратиться к методу модели для связи?

    ortsuev33, не совсем понимаю вас. Вы делаете запросы "дай мне ВСЕ записи, которые соответствуют критериям X". В ответ вы разумеется получаете коллекцию. Если вам нужно вызвать метод модели - обратитесь к модели в коллекции. Используйте first если нужно получить 1 первую модель, или map/filter если нужно пройтись по всем. Это же коллекция.
  • Кастомные вход и регистрация на сайт WordPress. Как обработать условие «is_wp_error»?

    avprinciple, спасибо за наводку, добавил в закладки, посмотрю ближе к зиме. У меня сейчас стартап к релизу готовится, iOS приложение для фитнесс-тренировок, у меня тут АПИ и бекенд в разгаре, так что пока точно не до курсов)

    По JS кстати настоятельно советую курсы:
    - от Chris Ferdinandi по ванильному JS - https://gomakethings.com/resources/ (у него программа price parity, для наших стран стоит очень адекватно)
    - от Wes Bos по ES6/React - https://wesbos.com/courses/ (есть и по CSS - flexbox и grid)
    - Laracasts по Vue.js (а также PHP, Laravel, инструментарий, тестирование) - https://laracasts.com/series?curated (тоже есть flexbox и grid)

    Отличный контент, стоит каждую потраченную копейку (не считая того что многое доступно бесплатно).

    все пропускают раздел, где нужно кастомизировать Вход, регу, профиль :D Я не понимал почему, теперь знаю :)

    Эту штуку принято либо оставлять нативной (в этом нет ничего плохого), либо использовать уже проверенный плагин для кастомных профайлов на фронте, включая регистрацию, либо если пишут фронт на реакте/vue - использовать REST API. Написать это дело самому и по уму для опытного разработчика не проблема, а новичкам лучше туда не лезть без подготовки - чревато :)

    Хотя кстати это мысль, вполне мог бы получиться мини-курс "Все про регистрацию и авторизацию в WP", в который можно вложить как написание своего фронта (классического + SPA/аякс на чистом JS и/или на Vue/React к примеру), так и тонкости работы с roles и capabilities. Вполне интересная тема была бы. Где ж только время на это найти :)
  • Почему у меня не получается обратиться к методу модели для связи?

    ortsuev33, сделайте dd($builder) и посмотрите, какой у него тип. Я (исходя из ошибки) предположил что он будет Collection. А вы думаете, что там Model. Проверьте дампом.
  • Почему у меня не получается обратиться к методу модели для связи?

    ortsuev33, а почему вы решили что от модели? Exception вам как-бы прямым текстом говорит об обратном - вы от коллекции моделей обращаетесь. Что вполне логично если вы получаете модели с помощью ->get() и у вас там даже пагинация предусмотрена.
  • Кастомные вход и регистрация на сайт WordPress. Как обработать условие «is_wp_error»?

    А вы не проводите ни каких конференций или не принимали участий по WP?

    Та все никак руки не доходят) Долгие годы мучался "я еще недостаточно хорош чтобы на конференциях выступать", когда понял, что готов - времени уже на это нету, не самое главное) Точечно по возможности где-то выступал, но глобально - нет. Впрочем, есть вероятность что этой осенью выступлю на Киевском WordCamp с докладом.

    не понимаю почему за 16 лет, не появился в СНГ, кто писал бы толковый материал по WP,

    Есть 2 нюанса - объем рынка + платежеспособность. Всем конечно хотелось бы качественные материалы бесплатно, но в реальности это огромное количество работы - запилить качественный видео-курс, книгу-курс, серию статей в виде курса. И этот труд кто-то должен оплачивать. В цивилизованных странах люди привыкли платить за качественный обучающий контент адекватные деньги. В рунете один умник дождется скидки на какую-нибудь черную пятницу, купит по скидке, выкачает весь контент и выложит на все трекеры. А остальные с удовольствием оттуда скачают с улыбкой "я что лох платить". Поэтому рунет как рынок - не интересен.

    То же самое касается блога и статей - если я буду писать качественный контент и тратить на это время, я хочу это монетизировать - это абсолютно нормальное и здоровое желание автора. За счет рекламы не вариант - почти у всех будут блокировщики. За счет рефералок - тоже не очень вариант, все адекватные западные сервисы с хорошими рефералками "слишком дорого" для среднестатистического рунетовца. Платная подписка на блог? Не смешите. Точно не в рунете.

    даже на западной стороне, как оказывается за 16 лет - мало. Я когда гуглил, Пиппина не нашел :(

    Да нет, там дофига и больше. Ссылки и имена которые я вам привел - только верхушка айсберга. А конкретно Пиппин это старая школа, он сейчас больше менеджерит свои бизнесы построенные на культовых плагинах, так что и посты в блоге старые и в индексе обычно уже не всплывают вверху.

    У нас русскоязычных блогеров/разработчиков, которые пишут про WP, кроме wp-kama, нет?

    https://wpmag.ru еще есть, а так большинство русскоязычных разработчиков которые знают английский тусуются больше "там". Я например вообще по рунету не хожу и никогда не ищу на русском, тем более во всяких яндексах (сервис, заблокированный в Украине). Только гугл, только английский. Если посмотреть мою историю в браузере, то рунета для меня кроме Тостера и Гиктаймс - не существует. От слова совсем.

    Вам с вашим багажом на udemy надобно, я был бы первым учеником :)

    А вот над этим я активно-пассивно размышляю который год. По чесноку, есть в черновиках штук 50 качественных статей, которые надо конечно уже обновить/актуализировать, но в целом материалы очень годные. Есть куча заметок для видео-уроков и даже целых вебинаров по узким темам в WP. Но довести все это дело до логического завершения физически не хватает ресурса. Но не исключено, что доберусь когда-то.
  • Кастомные вход и регистрация на сайт WordPress. Как обработать условие «is_wp_error»?

    avprinciple,
    А где вы всю эту информацию черпали?

    Да все просто - с WP работаю очень плотно с его первых дней. Сам WP родился в 2003м, а я впервые за него сел в 2004м, и дальше рос вместе с ним, следя за всеми ключевыми обсуждениями среди разработчиков ядра, участвуя в них. Чувствую себя в коде ядра WP как дома, потому что со временем перелопатил его от корки до корки, много-много раз. Он мне как родной :)

    Дайте ещё ссылки для развития WP.

    https://wordpress.org/support/
    https://developer.wordpress.org/themes/
    https://developer.wordpress.org/plugins/
    https://developer.wordpress.org/apis/ - этот раздел еще в работе, доступен только авторизованным пользователям (можете зарегистрироваться на wordpress.org, и получите доступ автоматом)
    Ну и https://codex.wordpress.org - там все еще достаточное количество полезной инфы, не все перенеслось на новую версию developer.wordpress.org
    https://deliciousbrains.com/blog/
    https://10up.github.io/Engineering-Best-Practices/
    https://engineering.hmn.md/standards/

    Дальше найдите эти компании на GitHub (одних только HumanMade и 10Up уже достаточно), и посмотрите там список людей в самих командах на GitHub. Вот все из этих списков - адекватные. И их блоги можно и нужно изучать.

    Кроме этого - статьи и уроки из надежных источников. Условно говоря, есть люди / компании, которые пишут качественный код (и учат этому). Это тот же Pippin Williamson, Tom MacFarlin, братья Ковшенины, компании Delicious Brains, 10Up, Human Made и тд. Любой контент от них - годный. Часто - лучший в экосистеме. Ему можно и нужно доверять.То же касается многих разрабов из команды ядра, разрабов популярных плагинов и тд - среди них очень много качественного материала, разбросано по блогам. Но тут уже надо понимать кто есть кто, а это придет со временем - когда вы будете узнавать конкретных людей из экосистемы. Все остальное нужно воспринимать критически и "доверять но проверять", потому что говнокода и вредных советов намного больше, чем полезных. Типичный урок "how to do X in wordpress" как правило содержит ряд фатальных концептуальных ошибок - статья из камы которая привела вас сюда с этим вопросом яркий пример этого. И, кстати, еще не самый худший - многие подобные уроки вообще например опускают код связанный с проверкой данных из REQUEST, а новички и не догадываются что это такое и как это валидировать, санитайзить и тд. Результат - крики о помощи "мой сайт взломали" и потом на каждом углу вам скажут что "вордпресс говно и дырявый".

    Уже стереотип ровняться только на зарубежные источники. Я гуглил, и не мало, если я нашел такую "дичь" на зарубежных, то в СНГ пространстве я вообще ничего не нагуглил.

    Ровняться не нужно - говнокода и плохих советов там очень много. Единственное ключевое отличие от рунета - материала в принципе на порядки больше и он свежее. Большая часть материалов в рунете (за исключением нескольких авторских блогов) - переводы и вторичное переосмысливание западных материалов. С задержкой по времени.

    Вчерашний материал я прочитал, реализовал регу. C ajax для формы через JS, вывод ошибок не работает, остальное делает, регает, ну то такое, когда PHP изучу - буду понимать почему :D

    Вот это уже правильное направление :)
    Вывод ошибок здесь проще реализовать - ваш callback на wp_ajax_{action}/wp_ajax_nopriv_{action} должен в итоге всегда возвращать wp_send_json_success($data); die; / wp_send_json_error($data); die;, где $data будет JSON-объектом, содержащим ошибки или положительный результат (например id или даже все данные только что зарегистрированного пользователя). А что дальше делать с JSON на фронте и как вывести в форме я думаю вы уже знаете. Вот тут вам и пригодятся data-атрибуты.
  • Вредно ли слушать музыку с закрытой крышкой MacBook Pro 13 2018?

    Антон Спирин,
    Вы немного запутались в задачах. Есть конкретная задача - прослушивание музыки. По аналогии добавим профессиональную задачу - работа со звуком. Для обоих задач, как и в вашем примере, используется акустика разного класса: бытовые акустические системы и студийные мониторы.
    Бытовые акустические системы используют для прослушивания музыки. Мониторы для ее сведения, монтажа, пространственного панорамирования, мастеринга и прослушивания во всем диапазоне частот. Требования к бытовой и профессиональной аппаратуре разные.

    Вот в этом месте вы упустили еще важный use case - монтаж и сведение звука на непрофессиональном / бытовом уровне для личных потребностей, где и качество исходного материала, и результат, и опыт/навыки любителя никакого отношения к аналогичной профессиональной задаче не имеют.

    Любая бытовая аудио-система с этой задачей справится на ура. Собственно, и встроенные динамики макбука прекрасно справятся, если мне нужно нарезать и слепить фрагменты песен и аудиодорог из видеофайлов для монтажа поздравительного видео-ролика теще на юбилей. И результат буде отличным для такой задачи. И родственники когда будут слушать-смотреть - прослезятся.

    Мой месседж изначально в том, что мир не черно-белый как вы утверждаете (можно слушать / нельзя, соответствует стандартам / не соответствует), а состоит из множества градаций серого. И вот большую часть этого спектра оттенков-задач встроенные динамики закрывают чуть более чем полностью. Да, специализированное устройство сделает это лучше. Но очень часто специализированное устройство не нужно / отсутствует / лень включать / whatever. И в этой ситуации встроенные динамики - good enough. Да, если вы хотите вслушиваться в глубину звука, наслаждаться музыкой - включайте аудиосистему. Если вы работаете и фокусируетесь на рабочей задаче, а музыка нужна лишь легким фоном, чтобы выровнять окружающий шум и задать ритм - встроенные динамики good enough.

    Я когда посуду мою, кладу рядом телефон и включаю музыку на нем. И норм. В этот момент требования к качеству звука у моего внутреннего аудиофила существенно снижаются, потому что тащить Harman Kardon из рабочего кабинета мне в облом.

    У вас подход ценителя качественной звука. Это не есть плохо. Это хорошо и абсолютно нормально. Но вот академическая категоричность суждений и отсылка к каким-то стандартам - ИМХО - лишнее. Вот это вот:

    Мое же утверждение ссылается на стандарты принятые для проектирования бытовых аудиосистем


    Мы тут в комментах обсуждаем, все комменты по определению субъективны, и наши ощущения от качества музыки в разных ситуациях крайне субъективны. Автор по сути спрашивает "как вам такое?" а мы отвечаем "мне норм" / "а мне не ок". Он собирает эту статистику да/нет и это помогает ему принять/оправдать свое решение. Не нужна тут объективность, сравнительные характеристики, результаты лабораторных тестов и тд. Автор не об этом спрашивал вообще.

    И вот это:

    кому-то качество воспроизводимой на штатных динамиках MBP музыки может нравится


    Я нигде не говорил что оно нравится. Или что оно качественное. Все мои формулировки сводятся к "достаточное качество" для конкретных use cases. У автора очевидно аналогичный use case - он реально слушает музыку на ноуте, как и я. Значит для каких-то ситуаций и задач нам обоим этого качества достаточно. И тут приходите вы вот с этим:

    Как по мне, прослушивание музыки на динамиках подобного диаметра довольно сомнительное удовольствие, а чтобы еще с закрытой крышкой - это надо, как минимум, ни музыку, ни себя не любить.
    Вменяемую стереосистему сейчас можно приобрести всего за 8000 - 15000 рублей.


    Да, вы употребили "как по мне", но сути это не меняет - вы на корню исключили возможность прослушивания музыки на ноуте. А тех, кто это делает (по вашему мнению, разумеется) отнесли к каким-то непутевым и начали разносить что нету там никакого качества ни по каким характеристикам. Снобизмом реально так попахивает.
  • Кастомные вход и регистрация на сайт WordPress. Как обработать условие «is_wp_error»?

    А, ну и еще, из изначального вопроса:
    wp_redirect( home_url() ); // Тут хотел сделать редирект; Не работает :)

    Сразу после редиректа нужно делать exit; чтобы завершить выполнение.
  • Кастомные вход и регистрация на сайт WordPress. Как обработать условие «is_wp_error»?

    avprinciple,
    а почему дичь? Всё работает же. Или не безопасно? Или так писать моветон?

    Все сразу. Не используется WordPress lifecycle и хуки и вообще WP-стандарты в целом. Это означает что может быть сломана интеграция сторонних плагинов, которые используют те же фичи.

    Тот же wpsignon не устанавливает переменную current_user, поэтому если вызывать не на хуке и не вовремя, is_user_logged_in() которую можно и нужно использовать для проверки будет возвращать false. Это вполне может привести к скрытым багам, на которые вы потратите ночи напролет.

    Функция user_login() авторизует пользователя (не полностью, см. выше), и либо возвращает сообщение об ошибке (в html, что не есть ок), либо редиректит. Неконсистентная логика и типы, потенциальные баги. Плюс редирект встряет в цикле жизни WP не там, где он должен быть. Ну и вот возврат ошибки о логине нигде не ловится и не выводится. Улетает в черную дыру.

    Функция new_user_registration() в случае ошибок при создании пользователя (пользователь уже существует с таким имейлом, логин больше 60 символов и тд) возвращает разные WP_Error, я не вижу где и как они обрабатываются и выдаются пользователю в форму.

    Восстановление пароля не кастомизировано, используется стандартная форма и страница wp-login.php. Если ею воспользоваться, ссылка в письме будет тоже на стандартную форму, а после установки нового пароля будет системный редирект на стандартную страницу входа и оттуда же после входа редирект по системным правилам (то есть в админку, потому что все урлы авторизации вы не фильтровали).

    В HTML я вижу дата-атрибуты, видимо должна быть какая-то валидация с помощью javascript, при чем 2 слоя по ходу - перед отправкой формы и после получения ошибок в ответе с сервера их надо бы тоже вывести. Это не реализовано и при таком подходе нормально и не получится.

    Вместо конструкций типа <?php echo home_url(); ?>/login используйте <?php echo home_url('login'); ?>

    Как видите, есть ряд проблем. Устранить их точечно не получится, потому что само архитектурное решение, выбранное автором этого урока не совсем корректное. Поэтому - дичь :)
  • Вредно ли слушать музыку с закрытой крышкой MacBook Pro 13 2018?

    Антон Спирин,
    вы выдаете свою сугубо субъективную оценку за действительность

    Вы свою подали точно так же. Это называется субъективное мнение. Их высказывают в комментариях. Так работает интернет. Вот ваше сугубо субъективное мнение, поданное как действительность: Для прослушивания музыки ... в силу своих физических размеров, они само-собой не подходят. Странно, большинство владельцев по всему миру преспокойно слушают и норм ‍♂️

    По поводу притянутых за уши вещей, вроде: аудиофилии, дискача, лампового звука и прочего. Я ничего подобного не упоминал и не имел ввиду.

    Ваш комментарий отсылается к стандартам для аудиотехники совершенно другого уровня. Мы же говорим о маленьких встроенных динамиках в ультратонком ноутбуке.

    динамики MBP не соответствуют стандартам применяемым при проектировании бытовых акустических систем

    Макбук и не является бытовой акустической системой. Именно поэтому данные "стандарты" к нему неприменимы. Попытка натянуть их на него и купирована отсылкой к аудиофильской теме.

    а по сему для прослушивания музыки не совсем подходят и заметно уступают последним в качестве воспроизведения музыки.

    Ясен пень, что уступают, с этим никто и не собирается спорить. Это устройства разного класса. Сравнивать их и приводить к одному стандарту - пустая затея. Сравнивать можно с другими ноутбуками других производителей. Или другой не-аудиотехникой с встроенными динамиками, на худой конец. И в этом сравнении макбуки всегда будут выигрывать. Для примера, у меня есть внешний 27" монитор со встроенными динамиками намного бОльшего размера. Но звучат они как говно, даже системные звуки ужасны. Но сравнивать качество со специализированной техникой некорректно. И этого никто кроме вас здесь не сравнивал.

    Приведу еще один простой пример. Есть машина с турбированным двигателем на ~300 сил. Это не спорткар, не раллийная машина, не болид формулы 1. Это большой седан D-класса, первоочередные задачи которого - комфорт и безопасность. Но наваливает этот сарай добротно. Аж дух захватывает. Кайфово. Но очевидно же что это не спортивная машина, в соревнованиях со спортивными машинами она участвовать не будет и сравнивать ее со спорткарами изначально некорректно. И мерять ее по раллийным стандартам - некорректно. Она едет медленнее и хуже по сравнению с любой спортивной машиной, это очевидно и объективная реальность. Но от этого она не перестает быть быстрой и управляемой машиной для ежедневных задач. Для трека - нет. Для ежедневной езды - очень да. И это тоже объективная реальность. Хотя по вашей логике на такой машине быстро ездить нельзя, максимум 50 кмч по городу. Потому что она не спортивная.
  • Кастомные вход и регистрация на сайт WordPress. Как обработать условие «is_wp_error»?

    avprinciple, Вообще кама обычно нормальный, годный контент - сам их часто рекомендую. Но конкретно в этом случае слегка дичь.

    Неужели так сложно написать, рассказать? о_о

    Понимаете, вы почему-то думаете, что система авторизации - это простенький код на пару строчек, и ожидаете, что вам подскажут "быстрое решение". Но увы, это не так. Вопрос чуть более сложный, особенно с учетом специфики WP. И объем работы тянет на полноценное задание, а не вопрос-ответ на Тостере.

    В приведенном вами коде много не так, и архитектурно сделано совсем не WordPress-way, поэтому там по хорошему все переписать бы.

    Вот, к примеру, старый как мир, но все еще актуальный (и получше камовского) урок - https://pippinsplugins.com/creating-custom-front-e...

    Или вот https://ahmadawais.com/create-front-end-login-page...
  • Вредно ли слушать музыку с закрытой крышкой MacBook Pro 13 2018?

    Антон Спирин,
    Кому достаточно? Вам? У меня тоже MBP 2015 и назвать звук, выдаваемый штатными динамиками, приемлемым для прослушивания музыки у меня язык не повернется.

    Йоу, я говорю о легкой фоновой музычке на громкости треть и ниже. ФОНОВОЙ, во время работы. Никто ж не говорит наваливать басы на полной громкости и дискач соседям устраивать.
    Если говорить объективно, то в нише музыкальных акустических систем

    Йоу, аудиофилы, стопэ! Давайте не будем про теплый ламповый звук, винил и Focal какой-нибудь. Мы говорим о бытовухе.
    Советую попробовать послушать фоновую музыку на нормальной акустической системе, чтобы понимать о чем я говорю.

    А вы реально думаете у меня нет дома нормальной акустической системы а макбук - единственное устройство в доме, издающее звук?
  • Кастомные вход и регистрация на сайт WordPress. Как обработать условие «is_wp_error»?

    avprinciple,
    код PHP из туториала,

    Тюториалы бывают разные. Не все учат как хорошо и правильно. Слепо им доверять и следовать - чревато.

    потому что из разметки с эти переменные "$user_verify" - я не могу обрабатывать

    Вы не понимаете как работает server-side на базовом уровне, потому я и советую бросить это дело и сесть за основы PHP для начала.

    Моя проблема в том, что get_header, должен быть выше кода php, а так логинирование не работает,

    Не работает, потому что вы делаете это неправильно и не понимаете почему. Кстати, без всего кода вашего сложно скорректировать и подсказать вам.

    по документации wp_signon должен быть выше какого-либо вывода html

    Это делается с помощью хуков, как и почти все в WordPress. Именно для этого вам нужно сначала освоить хотя бы азы PHP, а потом основу архитектуры WP. Без этих знаний вы будете каждую новую фичу делать через боль и страдания, задавая вопросы на Тостере и не понимая почему на них никто не спешит отвечать.

    когда я опускаю get_header, всё работает,

    Не нужно этого делать, get_header() должен быть в самом начале шаблона. А в самом header.php должен быть вызов wp_head(). Чтобы выполнять какие-то действия до отправки сервером заголовков (например wp_signon(), который устанавливает куки авторизации) нужно подключаться к более ранним хукам - template_redirect, init и тд.

    Дельное решение вопроса, однако)

    Я вообще-то 2 решения предложил - либо бросить, либо все-таки начать учить это дело по уму, а не вот так без базового понимания бросаться в разработку фич, которые непосредственно связаны с безопасностью вашего сайта.