How To Create A OOP PHP Login System For Beginners | OOP PHP & PDO | OOP PHP Tutorial
HTML-код
- Опубликовано: 11 окт 2021
- In this PHP tutorial you will learn how to create a login system in PHP from, and how to show content after being logged in. You will also learn about error handlers, and MySQLi databases, which includes how to make a login form and a signup form.
I am aware that this is a very long video, but I promise it will be one of the easiest guides you will ever find on how to create a OOP PHP login system from scratch!
If you get any errors during this tutorial, make sure to check out my solutions at the very bottom of this description! :)
➤ LINKS
The next Profile Page tutorial: • How To Create a User P...
Install XAMPP & a local server: • 2: Installing A Local ...
Regular expressions (search patterns): • 59: Functions Using Re...
PDO vs. MySQLi links:
dev.to/mega6382/mysql-vs-mysq...
www.hubspot24.com/rg-post?blo...
➤ GET ACCESS TO MY LESSON MATERIAL HERE!
First of all, thank you for all the support you have given me!
I am really glad to have such an awesome community on my channel. It motivates me to continue creating and uploading content! So thank you!
I am now using Patreon and RUclips Memberships to share improved and updated lesson material, and for a small fee you can access all the material either from my memberships or Patreon, depending on your preference. I have worked hard, and done my best to help you understand what I teach.
I hope you will find it helpful :)
Memberships: / @dani_krossing
Patreon: / mmtuts
➤ ERRORS YOU MIGHT RUN INTO!!!
▸"unexpected }"
If you get this error message:
Parse error: syntax error, unexpected '}'
Then it is because you forgot to close a ) or ; somewhere.
▸"unexpected ;"
If you get this error message:
Parse error: syntax error, unexpected ';'
Then it is because you forgot to close a } or ) somewhere. Probably because you made a mistake with your parenthesis near the "empty()" functions in your signup script.
▸"hashed pwd error"
If you get an error in the script when you hash the password, then it is because you decided not to follow my steps exactly in the video when I created the database table. Make sure you DON'T set the varchar() to a lower value! When you hash the password it will take up a lot of space in this column, and if you set a lower number then it won't fit!
▸"signup=success but database is empty?"
Here there might be a few reasons for your error. 1st is that you made a syntax/spelling mistake in your code. And yes you will claim that your code is identical to mine, but in 90% of the cases people claim this, I still find a syntax error in their code. So check your code for errors!
2nd reason is that MAMP seems to cause a lot of issues for people. Therefore try using XAMPP and make sure you write the same as me in the dbh.inc.php file.
3nd reason might be because you didn't follow the tutorial 100% when we set up the database at the beginning.
▸"HTTP ERROR 500"
HTTP ERROR 500 is a server error, meaning that you are most likely using an outdated version of apache or mysql. Try updating your servers and make sure that you are using the latest version of PHP.
👉👉I MADE TYPOS IN THE VIDEO YOU NEED TO FIX!
👉ERROR 1:
In login.classes.php inside the getUser() method, I made two important typos that will make your code not work. (WHOPS! 😅 ty Sentinel Corps for letting me know)
The first SQL execution should be:
$stmt->execute(array($usn, $usn));
The second SQL execution should be:
$stmt->execute(array($usn, $usn, $pwdHashed[0]['user_pwd']));
👉 ERROR 2:
As someone pointed out in the comments, using rowCount() to check how many results we get when we query the database, isn't a method that work in all database types. Instead you should use count() after you returned the data. Make sure you do it ALL PLACES where you SELECT from the database. 🙂
SO INSTEAD OF:
if($stmt->rowCount() == 0) {
$stmt = null;
header("location: login.php?error=usernotfound");
exit();
}
$profileData = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $profileData;
IT SHOULD BE:
$loginData = $stmt->fetchAll(PDO::FETCH_ASSOC);
if(count($loginData ) == 0) {
$stmt = null;
header("location: login.php?error=usernotfound");
exit();
}
return $profileData;
👉 ERROR 3:
If you get a "undefined variable $result", then it is because your editor doesn't like when a variable is declared without a value assigned to it.
To fix it, change:
$result;
To:
$result = false;
👉 BEFORE YOU COMMENT ABOUT LESSON MATERIAL:
And for people who "want my lesson files for free", here is my answer to that. 🙂
My subscribers has voted on me not including CSS in my future videos because it took too long, and because you already should know HTML/CSS at this point. This is not a HTML/CSS tutorial, and even so you are not supposed to "just copy" from this video, you are supposed to "learn and apply" to your own website. People have already supported me on Patreon to get my lesson files, therefore I won't suddenly make it free to download.
People who think I'm obligated to "give my material out for free", have gotten the wrong impression about what rights you have. The free educational videos I make are a product I put a lot of effort into, and I can distribute it however I want. Just be happy that ALL my videos are free, and not on Udemy for $15. 😉
I have seen some angry comments say that I'm "putting up paywalls" for my content, which would imply that you couldn't follow my tutorial without paying for my files... So let me debunk that really quick...
There is NO "extra" PHP in my lesson files, that you won't find in this video. The "lesson material" is meant for people who are making mistakes or typos in their code, and would like my personal files to compare to see where they made mistakes. Or for people who want MY HTML and CSS. 😊
This is how I run my channel so deal with it. 🙂 I won't argue with anyone about it.
thank you Dani for giving us these videos anyway, it's really helpful❤❤We appreciate your efforts❤
I've been waiting for this. I love your teaching style and would easily pay for more content in php oop development
Thanks for the video
Thanks for the video
Dani, how can I contribute just one time? Amazing videos....learned a lot. Thank You!
Took me three days to finish your Object Oriented PHP Tutorial and man, oh man, did I learn more than what my uni professor is teaching us. Kudos to you and thanks a lot, sir Krossing! You are an inspiration to me. Keep on coding and I'll keep on following!
Hi Daniel,
I started watching your basic HTML & CSS courses about 2 years ago, after looking to move into front-end programming as a new career.
2.5 years later I am now a mid-level front end developer in a fantastic career and on my way up.
I want to owe a huge part of it to your early tutorials, making the learning process enjoyable, else I would have probably stopped very quickly.
Love your content, keep it up :)
Way to go Alfie !
That's really awesome!
Hey Daniel.
I wanted to thank you so much for your effort on these tutorials. Your HTML, CSS, JAVASCRIPT and PHP courses helped me to achieve higher marks in my Web design assignment. Your tutorials are the only things that I have looked upto and followed. You are a fantastic teacher. I don't normally leave comments in RUclips but I wanted to thanku by leaving this comment to thank you for sharing your knowledge with everyone else. For anyone who look forward to learn and develop their skills on Web designing this is the place to learn.
as always Dani, providing premium dev content for free, you've saved me so much through my uni course. Much love bigman
Thank you for painstakingly explaining everything you do. I'm sure there are many people (like myself, a rookie) who feel anxious if we deviate from anything explained but you make it very clear what is important and not important to have copied exactly. Thanks dude!
rip to the people who did the tutorial in 2018, then realized there's a new one, AND right as they were finishing, this came out. LOL (totally not me)
Hehe 😂 At least this one isn't just a "remake", and instead an actual OOP version. 😉
Which is better please 🙏
@@emmanuelchukwuegbo961 depends on what your doing. Car is better gas mileage but your not gonna haul lumber with it 🤪
Procedural programming in general can be better than OOP programming depending on what your doing. OOP provides "security" through classes as well as saves you from using duplicate code over and over again.
Hope you can decide what's better for you!
I'm so glad to see you doing tutorials about programming again. You're so easy to understand when explaining things. Thank you so much
My gosh, man... I literally just finished the PHP login system that you posted on October 11 2020 yesterday, now you come out with this!!
This is awesome!!
Same with me 😃😃😃
Been waiting for this tutorial for over a year now and finally came. I appreciate you man, thank you so much. Love from South Africa. 🇿🇦🇿🇦
Literally, this is one of the best PHP project video on RUclips. Thanks Dani👍🏾💯
Great tutorial 🔥🔥 Here are couple ideas I'd love to watch
1) CRUD
2) Routing System
3) Composer basics
just spent the last hour trying to work out why there was an issue with my error handling only to find a silly typo!! it was still a productive hour as I now have a better understanding of what the code is actually doing. its nice to see even the pros make typos ;-) one of the things I like about your videos is that when you yourself make mistakes you explain later on in the video how you rectified them instead of just editing the mistakes out.👍
It's just crazy how this man is able to make such good videos, KEEP IT UP!
Dani, you are the best on the web imho. You've been teaching me for years and I keep coming back.
Splendid video! And valuable comment about possible errors! Absolute gem in the world which tries to ignore PHP. Thank you Dani!
This video is definitely worth watching for anyone new to PHP registration and login forms.
It is simple, concise and very educational.
Dani! I followed all your PHP tutorials, very clear easy to follow and understand! I have some basic PHP knowledge already so this made my life easier. Thanks and please keep up the good work! Please release more like this. With these tutorials i managed to make a fully fledged login and register system. Only thing i am missing is 2FA. :)
Hello Dani. You've been a great php teacher to me. Following your php tutorials I can clone unsplash with basic login system, sign up system, password reset, and how to upload files/photos. Thank you so much. But if you could show some love and do a video on php teaching us how to login with cookies and how to keep users logged in (remember me) with cookies. If nobody has asked u to. I hope you do one of your greatest fan this favor. Thank you so much Dani
I'm totally new to PHP and I got this working perfectly. Thank you from Sweden!!! :)
Well whaddaya know. Just what I need.
You never disappoint, Dani.
Great tutorial. I love your teaching style. I also love that your transparent with your typos and mistakes. Helps me know that its just part of coding.
i just started php and watch almost playlist and write notes. and i can say im getting the hang of it thank you very much sir youre a great teacher
Bro I just wanna say that I love you, you are doing priceless work and you have best PHP tutorials .
Thanks a lot Dani! I'm teaching myself coding and you became like a guru for me.
You're the best as far as PHP is concerned. You're the absolute best.
I have been running from OOP, but damn you just make it look so so easy.
Thanks a lot for your work! I think this is the best tutorial I came across in a while, and I'm quite picky! I've been trying to find something that was more similar to the classes I'm having (just started learning php) so I can use it as supplement material for them. You present things very clearly 🤗
Super great !!!
We need more content like that i love the feeling when i watch your pragramming tutos
Thank you so much #Dani 😁
I've been watching your videos for quite some time now and I wanted to thank you for sharing your knowledge with us. When it comes to web dev, I don't think you're going to find any courses over at udemy that compare to yours, no matter the price. I'm currently 50 minutes into this video, and until you pointed some things out that you forgot to change, you lost me BIG BIG!! lol but now that you pointed those out, I'm going to go back and continue knowing what has to be changed. Thanks again for being patient in your videos and allowing us to type out everything and learn by doing.
Thanks a lot Daniel for these videos, asides the videos in this series, I've actually learnt a lot from your tutorials over the years. I know no one asked, but my first ever loginsystem, around 2019 was with your video.. lool... Now like before, you've contributed again towards helping me transition gradually to oop. Thanks a lot man. Thank you. I really do hope to become a pro like you someday. 😊
Thanks Dani. Another great tutorial and again very well explained. Honestly I am very glad about the few typo's. I think this way it is more educating and also gives me hope since I make so many typo's myself :-) I can follow up on one of the previous comments and would love to see a PHP OOP CRUD application with an upload function for .PDF files. Thanks again.
It is a very helpful video and I really like your tutorials. Keep going:) and thanks so much, Dani.
Great Video Dani !
It will be very interesting (after your mvc project), to create a complex registration form, based on mvc, with ajax autoloaders, warnings, error handlers, client & server-side validation for dates, emails, integers, strings etc...
few years back became oop php developer watching ur old videos of oop php and i know ur channel is not in millions of subscribers but i like the way you teach and am also ur old subscribe 😊
Howdy Dani, works great, no errors! also added users_address to further the use for a new family site where it goes to profile page to view users info and buttons to a family gallery page and an auction page. Great Job. two thumbs up !!
spent a week going all over youtube trying to search for a better tutorial, ladies and gentlemen, this is it!
You realy helped me out with some OOP! nice example with the login system! Realy nice! Thanks again
Brilliant video. Thanks for taking the time out to make this. I have learnt to build a login system in Node.js/Express using similar techniques, for one of my projects in the procedural way. But seeing this implemented in OOP is so much better. The code looks so much cleaner. I can now understand why OOP can be beneficial. The code is more organised and structured.
Thanks for the tutorial... it's great and functional out of the box. There are a few typos in there, but if you are able to follow your lead, you should be able to correct them on your own. Thanks again!
When I’ve recently dust off the rust of my HTML and CSS skills, you upload a PHP video
Glad you're back at it
Another great tutorial! Worked for me! Nice one bro!
Great tutorial despite the the errors crashing your system, we are only human after all, fantastic process just the same. I love your teaching methods and your sense of humor. You are cray just like I am. I had to watch this video again because I am new with working with OOP & PDO and I was not sure how to reference data pulled from the database column for further processing. Been working too much with procedural PHP. My mistake was with the multidimensional array reference ($user[0]['colref']) and because of this oversite, I threw away over 6 months worth of work. LOL Live and lean... Thanks Dani!
Hi Dani, thank you for the incredible content you provide on your channel. Your classes have been extremely helpful and have had a significant impact on my learning journey.
Your dedication to teaching and sharing your knowledge is truly inspiring, and I am grateful for the time and effort you put into creating your videos. Your explanations are clear and concise, making it easy for me to understand even the most complex topics. 😊
Great tutorial, saved in my playlist. Thank you!
I learned more from your Video tutorials then from any other teacher. You are the best, thanks a lot...
Dani is the professor I wish I had in my years in University. Great tutorial!
Dani i have been following your causes for at least 1year now and you are the only youtube creator that i enjoy and understand very well .
Am collins and 16years old from Africa .
Your conte will make a big change in my life and i know it ani .and i wish i could help every month on brands now its just that am still in highschool .
But i know one day i will my name will on you list of brands wt the end of the videos
#love_u_dani_krossing
Here from Tanzania
I become pro in PHP via the channel... thanks so much💪💪
I love how dani explains things
I just completed both of your php basic series. I just wanna say Thank you.
Great work Dani 👍 much love from Ghana 🇬🇭😊
Thanks dude this login system with OOP is incredible 👏
Thank you for making this video available and free.
Excellent tutorial as always. Thank you!
Solid Tutorial. Helped alot thanks Dani
Thank you very much for a great tutorial! Learned a lot from you!
Only 2k likes on thiis video?? smh this is the best PHP tutorials I've found so far and I have been LOOKING
awesome tutorial, your tutorials are the best, thanks for uploading php tutorial again.
Lo escribo en español para que se diviertan traduciendo:
Muchas gracias por todos tus conocimientos; he interpretado cada concepto y lo he aplicado con "mis palabras", o a mi manera, y son muy útiles en los programas que estoy haciendo.
Es invaluable la calidad de contenido que expones, muchas gracias nuevamente!
Saludos desde Argentina!
De nada. Me alegra que hayas disfrutado de mis videos. :)
@@Dani_Krossing I need a php mentor that will give me tasks, work on projects.. Any advice please
Thank you my friend for guiding me through the oop world
LOL just recently I think I remember asking for an OOP tutorial from you, thx Dani, next JavaScript or working with Frameworks plz !! :D
Just What I've been looking for🙂🙂🙂
Dani, what a good video, thanks for this quality of material, please continue to share your knowledge in this way about opp php pdo, I like the didactic way you explain, I will be anxious waiting for the next thing you will upload
i forgot a -> and holy it took me long to find the issue haha. great tutorial man i'm currently taking a speedcourse in OOP PHP and this helped me understand my homework alot better.
Man you have no idea how much stupid mistakes i made. I Thought that it just doesn't work.. did not give up and learned so much, THANKS! Gonna keep going.
Everyone makes mistakes while programming 🙂 Even the devs with 20 years experience. The important thing is to do what you did, and not give up, since it makes it easier and faster to recognize "what went wrong" next time. 😉
I'm learning a lot from you.
Just so you know.
Thank you man , you was wonderful .
Reaaaaaalllly Nice vid.. Thanks. I'm starting to Dump partial Procedural and go full on with OOP
im very greatfull for ur course ty sir Dani
it is worked with me and thank you so much I'm waiting your next vidio.
I worked for a company that promised to train me to code if I dedicated 2 years to the company at an under-market wage in consideration of my training. I passed all of their pre-training modules and was hired...only to be fired after three weeks. I was devastated. I had already invested months of time and energy in their system, and I liked what I was learning. I wondered why I could not understand much of what the instructor taught when I could understand all of the previous modules I learned including OOP. I almost let myself believe I wasn't cut out for coding. After I watched your videos, I know I was bullied/discriminated against. You explained everything you did with the proper technical terms and explained at a fairly rapid pace. Yet, I understood exactly every step you took. With a bit of review, I am confident I can create a login system based on this and other tutorials you have prepared. Thank you. I will not go into all of the protected classes I belong to or begin a soap-box lecture on the state of the employment environment in STEM fields. Your videos have given me the steam to keep going. Again, thank you. I am now a subscriber.
Hey, I just read your story. Would you like to workin my company? It would be remotely as the job is in New Zealand. The first year will be an unpaid internship, but we promise the ability to grow into a six figure salary within the first 2 years of working with us. Let me know :). -Jamie, Backend Dev - Xero.
this code works only if you are not lazy
to find your typos
the man is legit
Great video as always sir. God bless you!
Thanks Dani! 👏
Hello, Dani I hope you're doing well. I wanted to take a moment to express my sincere gratitude for the course you provided. The level of preparation, effort, and dedication you showcased throughout was truly commendable. I appreciated it! Keep it up, Man!
Again! Thank you, Dani!
From PHP PDO Procedural to PHP OOP & MVC Pattern! Hooray! I can now start to create my personal project to apply and explore what I've learned.. :D
Thanks a lot, very good intro course for oop php :)
Thank you very much for the videos!!
I use pdo for procedural php as well. Zero issues, works like a charm. So don't know why you say that. Other than that great video! Helping my php OOP.
Thanks a lot for this lesson !
Hi Dani! I love your videos! Is there a reason why, in the login.php file we are running two separate SQL queries for similar data? Is it possible to do it all in one query or would that be a security risk or something? Thank you for your work!
Hello! Glad to see You!
I just wanna say THANK YOU!
So much gratitude here for you.
Hi Dani, nice lesson... do you recommend use ajax to handle error inputs instead handle in the classes? thanks
my brain fried at around 40 minutes but yes sitting 1 hour through any tutorial is not easy XD but i love your content
Excellent videos man, you're a true hero and a great mentor. PHP finally make sense. I wonder if you have any plans for creating videos on how to further use this login system? Such as resetting, editing profile details, and data relations the oop way?
And of course some security measures would be interesting
Hi Dani. Thanks for making this video. Why don't you use frameworks such as React?
great video, i was able to convert my plane PHP code to proper PHP code.
Clearly and Greate to follow
Thank you so much for this, but I still have an error. just try to figure it out myself, thank you again DANI!! you are the best.
thanks a lot this video really helped me with OOP php
Yeah we need more PHP, that login tut from last year put me on the map when I started Laravel PHP...I was worried there for a sec, like you had switched professions...Like a pro gamer or something...
Thank You :)
you come back yeahhh
super great as usual Daniel. keep it coming please make video on CRUD in php
Thank you very much!
nice work man
Hey Daniel,
If I'm implementing this method to an abstract class, instead of extending the controller class to the child classes (since a ckass can be extended to only one class) is it ok if I 'include' the child classes in the controller class after changing the protected methods into public or is there any other good practices. I'm stuck with an assignment where I have to work with an abstract class.
Very good tutorial.