Регистрация и авторизация на PHP 8.2

  Рет қаралды 3,455

Андрей Кудлай

Андрей Кудлай

Күн бұрын

В данном видео мы с вами напишем функционал регистрации и авторизации на PHP. Для работы нам потребуется версия PHP 8.2. Также в уроке Вы найдете рекомендации и по написанию кода для более ранних версий PHP.
00:00 - Структура приложения
19:51 - Валидация данных
49:58 - Функция регистрации
1:19:34 - Функция авторизации
1:34:10 - Секретная страничка
Исходники к уроку - github.com/matroskin978/simpl...
#php #registration #login #session #php_авторизация #php_регистрация
===========================
Мои курсы на Udemy
Курс по созданию интернет-магазина и веб-приложений в Telegram - www.udemy.com/course/telegram...
Курс по созданию собственного шаблона интернет-магазина для OpenCart 3 - www.udemy.com/course/opencart...
Курс по PHP - www.udemy.com/course/php-8-ua...
СУБД MySQL и язык запросов SQL. Теория и практика - www.udemy.com/course/mysql-sq...
Не получается приобрести курс или нужна скидка - обращайтесь. Решим :)

Пікірлер: 53
@user-pw9zk4hn1q
@user-pw9zk4hn1q 14 күн бұрын
Круто, приятно послушать
@EgorDemeshko
@EgorDemeshko 2 ай бұрын
два часа пройдут прекрасно, это точно!)
@matroskin978
@matroskin978 2 ай бұрын
Приятного просмотра 😉
@EgorDemeshko
@EgorDemeshko 2 ай бұрын
интересно что у меня xdebug стоит, но что-то такой красоты нет) надо посмотреть что там еще надо дополнительно)
@alexdreamer11
@alexdreamer11 5 ай бұрын
Спасибо за урок. Хотелось бы урок конечно по кодировкам и по PDO по-подробнее(там же полно всего в этом PDO) без вас не разобраться, вы так хорошо все обьясняете.
@matroskin978
@matroskin978 5 ай бұрын
Пожалуйста) По кодировкам урок уже есть - kzfaq.info/get/bejne/r8V9YNVlsbW6dps.html
@user-cw4us2mt8q
@user-cw4us2mt8q 2 ай бұрын
дядь спасибо большое!!тысячу сердец и лайков в твою карму!!
@matroskin978
@matroskin978 2 ай бұрын
Пожалуйста 🙂
@matroskin978
@matroskin978 8 ай бұрын
Мои курсы на Udemy Курс по созданию интернет-магазина и веб-приложений в Telegram - www.udemy.com/course/telegram-bots-web-apps/?referralCode=A574DFE059CF9FF4E002 Курс по созданию собственного шаблона интернет-магазина для OpenCart 3 - www.udemy.com/course/opencart-3/?referralCode=96BAF7C78DF57D6A90CA Курс по PHP - www.udemy.com/course/php-8-ua/?referralCode=4DAAEA9CF6ADF447D879 СУБД MySQL и язык запросов SQL. Теория и практика - www.udemy.com/course/mysql-sql/?referralCode=B6655F05D32032D80C0B Не получается приобрести курс или нужна скидка - обращайтесь. Решим :)
@user-th4gy4sz8j
@user-th4gy4sz8j 6 ай бұрын
Класс👍
@movlamverdiquliyev6049
@movlamverdiquliyev6049 6 ай бұрын
Здравствуйте. Спасибо за уроки!!! У меня есть свой сайт. Вы можете помочь сделать регистр-автор? Сколько это будет стоит? (Я об этом написал Вам письмо на вашу почту)
@matroskin978
@matroskin978 6 ай бұрын
Здравствуйте! Пожалуйста) Чуть позже я посмотрю почту и обязательно отвечу.
@maksinspire
@maksinspire 8 ай бұрын
Вопрос по 44:08. А почему если также написать dump($_GET); то гет не выводится. только dump($data); и dump($_POST); По идее после того как загрузилась форма мы передали гетом?
@matroskin978
@matroskin978 8 ай бұрын
Скорее всего, потому что Вы пишете вывод массива $_GET внутри этого условия? if ($_SERVER['REQUEST_METHOD'] == 'POST') {} В это условие мы попадаем только если страница запрошена методом $_POST (отправлена форма, к примеру). Поэтому и не увидим распечатки массива $_GET. Но если вынести распечатку за блок условия, тогда увидим пустой массив. Если вручную что-то написать в качестве $_GET параметров страницы в адресной строке, тогда должны уже увидеть не пустой массив $_GET. Также, как вариант, можно добавить к форме вот такой странный action: В этом случае и внутри условия мы увидим распечатку массива $_GET рядом с распечаткой массива $_POST.
@maksinspire
@maksinspire 8 ай бұрын
@@matroskin978 точно! Спасибо. Вообще, очень нравится ваши ролики, есть баланс и разжёвывания и самостоятельного поиска
@matroskin978
@matroskin978 8 ай бұрын
@@maksinspire спасибо 🙂
@maksinspire
@maksinspire 8 ай бұрын
@@matroskin978все проверил по 5 раз. Интернет пишет что я передаю что-то до хедера. Но у меня все равно есть такая ошибка после успешной регистрации: Warning: Cannot modify header information - headers already sent by db.php:1 in
@matroskin978
@matroskin978 8 ай бұрын
@@maksinspire правильно интернет пишет 🙂 Смотрите, когда мы вызываем функции, работающие с заголовками (к таким относится и функция header()), мы должны гарантировать, что перед вызовом такой функции не будет никакого вывод в браузер. При этом таким выводом может быть даже банальный пробел, пустая строка или даже некорректная кодировка (например UTF-8 with BOM). В ошибке Вам PHP сообщает, что на 10-ой строке файла db.php есть какой-то вывод, который и нужно найти и убрать. Если не получается найти, тогда скиньте мне этот файл - я попробую посмотреть. Ну и также не забывайте, что в описании к уроку есть исходники, из которых Вы можете взять искомый файл и использовать его в своем проекте. С ним такой ошибки быть не должно.
@user-pw9zk4hn1q
@user-pw9zk4hn1q 12 күн бұрын
Подскажите пожалуйста, у меня есть сайт на WordPress хочу сделать два личных кабинета как можно с вами связаться обсудить?
@matroskin978
@matroskin978 12 күн бұрын
Мой email есть в информации о канале. Вот только у меня совсем нет времени сейчас что-то делать, увы.
@user-se8md2hs2d
@user-se8md2hs2d 2 ай бұрын
А ведь длина значения поля таблицы не ограничивает его реальный размер? Слышал, что это только при работе через терминал, для удобства вывода значений. Так ли это?
@matroskin978
@matroskin978 2 ай бұрын
А что мешает попробовать?))) Если Вы имеете ввиду длину строкового типа VARCHAR, то ограничивает. Можете поставить определенную длину и попробовать записать больше. Ни запросом, ни напрямую через клиент этого сделать не получится. Сервер не даст. Также при работе с длиной строковых типов есть ряд нюансов. Все они разобраны более подробно в этом видео: kzfaq.info/get/bejne/r8V9YNVlsbW6dps.html
@user-se8md2hs2d
@user-se8md2hs2d 2 ай бұрын
@@matroskin978 попробовать мешает лень) Спасибо за ответ!
@matroskin978
@matroskin978 2 ай бұрын
@@user-se8md2hs2d да, есть такая противная штука)) Но мой Вам совет: на будущее все равно проверяйте любые утверждения, не ленитесь. Даже сказанные авторитетными людьми. Потому что даже компьютеры могут ошибаться, а люди - так и подавно. Поэтому, как говорится, доверяй, но проверяй ;)
@user-ti3jv8jq8r
@user-ti3jv8jq8r Ай бұрын
Если php 8 будет код тогда код не роботает??
@matroskin978
@matroskin978 Ай бұрын
Да, я специально писал под версию 8.2. Но, если посмотрите видео, то увидите, что именно нужно изменить, чтобы работало и под 8.0 - по сути, там всего один момент, если не изменяет память. В комментариях он обсуждался, вроде бы.
@maksinspire
@maksinspire 8 ай бұрын
По кодировкам прям надо. Потому что, их овер дохера, их сложно понимать когда не знаешь зачем и почему столько, еще и мало кто нормально рассказывает.
@krosYT
@krosYT 6 ай бұрын
Підтримую)
@svetiksemi1954
@svetiksemi1954 8 ай бұрын
На Apache не пашет-сплошные ошибки
@-slash__
@-slash__ 8 ай бұрын
При чем тут Apache?
@matroskin978
@matroskin978 8 ай бұрын
В уроке я использовал XAMPP, который использует Apache, PHP и MySQL. Соответственно, у меня тоже используется Apache. Впрочем, веб-сервер, как Вам уже ответили, здесь не при чем. Проблема в чем-то другом. Но чтобы ответить наверняка - нужно увидеть Ваши ошибки. Если конкретизируете свой комментарий и покажете ошибки - постараюсь подсказать, как их исправить.
@svetiksemi1954
@svetiksemi1954 8 ай бұрын
@@matroskin978 Ну давайте. Скачал я ваш пример, закинул на свой хостинг, создал БД и при запуске первое что выскочило: Fatal error: Cannot use 'true' as class name as it is reserved in D:\Server\data\htdocs\virthosts\134\.auth-main\incs\functions.php on line 28 т.е ваш пример не универсален, нужно выковыривать ошибки?
@matroskin978
@matroskin978 8 ай бұрын
Ну давайте)) >>> Скачал я ваш пример, закинул на свой хостинг Нужно не скачать код, как есть, а пройти урок, чтобы понимать этот код. Это первый момент. >>> запуске первое что выскочило: Fatal error: Cannot use 'true' as class name as it is reserved in D:\Server\data\htdocs\virthosts\134\.auth-main\incs\functions.php on line 28 Из первого вытекает и второй момент. Если бы Вы посмотрели урок и написали код самостоятельно, тогда бы этой ошибки могло и не быть. На 28-ой строке есть такой код: function check_required_fields(array $data): true|array И Ваша ошибка связана именно с ним. В уроке на 47:30 я обратил внимание, что возвращение типа true|array доступно только с версии PHP 8.2, которую я и использовал в уроке. Если же Вы используете более раннюю версию, тогда стоит использовать такой вариант кода: bool|array. Поэтому эта ошибка исправляется либо повышением версии PHP, либо использованием bool|array. Просмотрите фрагмент видео по указанному времени и Вы найдете этот момент. В целом, рекомендую просмотреть все видео и писать код, а не использовать готовый. В противном случае в плане обучения пользы не будет. >>> т.е ваш пример не универсален, нужно выковыривать ошибки? Любой код имеет требования к окружению. Когда Вы используете любой фреймворк или CMS, то там будет указана минимальная версия PHP, которая требуется для работы кода. В начале видео я обратил внимание, что буду использовать актуальную версию PHP 8.2, которую рекомендую и Вам. По ходу урока старался обращать внимание на моменты с версиями на примере Вашей ошибки как раз. Поэтому еще раз рекомендую просмотреть все видео и писать код самостоятельно.
@glebkonev875
@glebkonev875 5 ай бұрын
Спасибо огромное автору!!! Отдельное спасибо за напоминание, о возможности лагов на других версиях PHP. Пытаюсь повторить Ваш урок на PHP 8.3.1 . Ни одна функция, предлагаемая Вами в файле functions.php на php8.3.1 не работает. Всегда ошибка " syntax error, unexpected identifier". Что за гандоны эти авторы PHP?
@matroskin978
@matroskin978 5 ай бұрын
Пожалуйста 🙂 На 8.3 должно работать все же. Попробуйте взять файл из исходников.
@glebkonev875
@glebkonev875 5 ай бұрын
@@matroskin978 Да, Вы правы, все работает! Простите пожалуйста ламера. Я сам наделал кучу ошибок в functions.php.
@matroskin978
@matroskin978 5 ай бұрын
Ничего страшного, бывает ;)
@itvsmair9627
@itvsmair9627 8 ай бұрын
Логика простая - смотрим - вроде неплохой урок. Качаем пример, а он не рабочий! Есть ли смысл смотреть дальше на премудорствование автора. Автоответ -нет!
@matroskin978
@matroskin978 8 ай бұрын
По Вашей логике можно придумать вот такую простую аналогию. Смотрим, стоит суперкар последней модели. Пробуем на нем ехать по убитой дороге. Не едет. Ломается. Так стоит ли он таких денег?)) А если серьезно, то уже это утверждение: >>> смотрим - вроде неплохой урок я бы поставил под сомнение, поскольку в самом начале урока я четко и ясно говорю, что будет использоваться версия PHP 8.2 и на версиях ниже код работать не будет. Но по ходу урока я подсказываю и рабочие варианты под версии ниже. Поэтому, если бы Вы действительно посмотрели урок и написали код самостоятельно или, как вариант, использовали бы пример на последней версии PHP - тогда бы все работало. А так, по Вашей логике, тот же современный фреймоворк Laravel 10 не заслуживает внимания, поскольку на версии PHP < 8.1 просто не будет работать. Я бы все же пересмотрел Ваш подход к логике.
@itvsmair9627
@itvsmair9627 8 ай бұрын
@@matroskin978 Значит в шапке ролика нужно указывать - только для такой-то версии. Чтобы люди не тратили время - на вашу "логику". Ничего интересного - зациклились на собственной значимости? В инете больше доходчивых и приемлемых обучающих роликов чем ваши. Коронку то можно и снять.
@matroskin978
@matroskin978 8 ай бұрын
@@itvsmair9627 да я Вам просто ответил. Ответил с уважением. И объяснил, почему у Вас не работает. А Вы за какую-то корону начали. В описании указывать что-либо смысла не вижу. В таком случае придется указывать, что и прочие составляющие WAMP/LAMP нужны определенных версий? В начале самого видео буквально на первых минутах я говорю об этом. Если Вы не посмотрели, а сразу взяли код - я подсказал Вам в ответе. Вы же начинаете хамить зачем-то. P.S. Хотя все же укажу в шапке. Спасибо за этот совет.
@user-kk4wk2di7x
@user-kk4wk2di7x 6 ай бұрын
На 10 минуте , когда подключаем в index.php файл index.tpl.php , выводим минимальную верстку, когда проверяем, в итоге у меня просто белый экран, код проверил , все файлы подключены , на всякий случай с гитхаба даже пробовал взять код, думал может в синтаксисе где-то ошибка, белый экран как не крути, не работает index.php
@matroskin978
@matroskin978 6 ай бұрын
Белый экран практически всегда возникает из-за ошибок, вывод которых попросту отключен. В этом случае нужно либо смотреть логи ошибок на сервере, если они логируются, либо же включить их в начале файла следующими строчками кода: ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); Есть подозрение, что Вы используете версию PHP < 8.2. Для работы данного кода необходима новая версия PHP. Или нужно смотреть полностью видео, где в определенных моментах я акцентирую внимание на моменты, связанные с версиями и на то, что нужно изменить в коде, чтобы он работал и с более ранними версиями.
@user-kk4wk2di7x
@user-kk4wk2di7x 6 ай бұрын
@@matroskin978php 8.2.12
@user-kk4wk2di7x
@user-kk4wk2di7x 6 ай бұрын
@@matroskin978Вообщем я слепой тюлень))
@matroskin978
@matroskin978 6 ай бұрын
@@user-kk4wk2di7x бывает)))
@user-kk4wk2di7x
@user-kk4wk2di7x 6 ай бұрын
@@matroskin978Подскажите, умение писать такие функции как load, приходит с опытом? Или это просто логика и знание , как оперировать с функциями , условиями, циклами и тд
Как я выучил PHP? План обучения.
29:48
The delivery rescued them
00:52
Mamasoboliha
Рет қаралды 8 МЛН
Эффект Карбонаро и бесконечное пиво
01:00
История одного вокалиста
Рет қаралды 6 МЛН
ДЕНЬ РОЖДЕНИЯ БАБУШКИ #shorts
00:19
Паша Осадчий
Рет қаралды 6 МЛН
Open Server 6. Установка. Настройка. Работа
40:38
Андрей Кудлай
Рет қаралды 3,4 М.
Аутентификация. Сессии и JWT
23:37
Сеньор Full Stack
Рет қаралды 6 М.
Запись информации в базу данных MySQL с помощью PHP
4:48
Жанболот Калбаев
Рет қаралды 10 М.