Web Development Information |
Developing A Login System With PHP And MySQL
Most interactive websites nowadays would require a user to log in into the website's system in order to provide a customized experience for the user. Once the user has logged in, the website will be able to provide a presentation that is tailored to the user's preferences. A basic login system typically contains 3 components: 1. The component that allows a user to register his preferred login id and password 2. The component that allows the system to verify and authenticate the user when he subsequently logs in 3. The component that sends the user's password to his registered email address if the user forgets his password Such a system can be easily created using PHP and MySQL. ================================================================ Component 1 - Registration Component 1 is typically implemented using a simple HTML form that contains 3 fields and 2 buttons: 1. A preferred login id field Assume that such a form is coded into a file named register.html. The following HTML code excerpt is a typical example. When the user has filled in all the fields, the register.php page is called when the user clicks on the Submit button. [form name="register" method="post" action="register.php"] [input name="login id" type="text" value="loginid" size="20"/][br] [input name="password" type="text" value="password" size="20"/][br] [input name="email" type="text" value="email" size="50"/][br] [input type="submit" name="submit" value="submit"/] [input type="reset" name="reset" value="reset"/][/form] The following code excerpt can be used as part of register.php to process the registration. It connects to the MySQL database and inserts a line of data into the table used to store the registration information. @mysql_connect("localhost", "mysql_login", "mysql_pwd") or die("Cannot connect to DB!");@mysql_select_db("tbl_login") or die("Cannot select DB!");$sql="INSERT INTO login_tbl (loginid, password and email) VALUES (".$loginid.",".$password.",".$email.")";$r = mysql_query($sql);if(!$r) { $err=mysql_error(); print $err; exit();} The code excerpt assumes that the MySQL table that is used to store the registration data is named tbl_login and contains 3 fields - the loginid, password and email fields. The values of the $loginid, $password and $email variables are passed in from the form in register.html using the post method. ================================================================ Component 2 - Verification and Authentication A registered user will want to log into the system to access the functionality provided by the website. The user will have to provide his login id and password for the system to verify and authenticate. This is typically done through a simple HTML form. This HTML form typically contains 2 fields and 2 buttons: 1. A login id field Assume that such a form is coded into a file named authenticate.html. The following HTML code excerpt is a typical example. When the user has filled in all the fields, the authenticate.php page is called when the user clicks on the Submit button. [form name="authenticate" method="post" action="authenticate.php"] [input name="login id" type="text" value="loginid" size="20"/][br] [input name="password" type="text" value="password" size="20"/][br] [input type="submit" name="submit" value="submit"/] [input type="reset" name="reset" value="reset"/][/form] The following code excerpt can be used as part of authenticate.php to process the login request. It connects to the MySQL database and queries the table used to store the registration information. @mysql_connect("localhost", "mysql_login", "mysql_pwd") or die("Cannot connect to DB!");@mysql_select_db("tbl_login") or die("Cannot select DB!");$sql="SELECT loginid FROM login_tbl WHERE loginid='".$loginid."' and password='".$password."'";$r = mysql_query($sql);if(!$r) { $err=mysql_error(); print $err; exit();}if(mysql_affected_rows()==0){ print "no such login in the system. please try again."; exit();}else{ print "successfully logged into system."; //proceed to perform website's functionality - e.g. present information to the user} As in component 1, the code excerpt assumes that the MySQL table that is used to store the registration data is named tbl_login and contains 3 fields - the loginid, password and email fields. The values of the $loginid and $password variables are passed in from the form in authenticate.html using the post method. ================================================================ Component 3 - Forgot Password A registered user may forget his password to log into the website's system. In this case, the user will need to supply his loginid for the system to retrieve his password and send the password to the user's registered email address. This is typically done through a simple HTML form. This HTML form typically contains 1 field and 2 buttons: 1. A login id field Assume that such a form is coded into a file named forgot.html. The following HTML code excerpt is a typical example. When the user has filled in all the fields, the forgot.php page is called when the user clicks on the Submit button. [form name="forgot" method="post" action="forgot.php"] [input name="login id" type="text" value="loginid" size="20"/][br] [input type="submit" name="submit" value="submit"/] [input type="reset" name="reset" value="reset"/][/form] The following code excerpt can be used as part of forgot.php to process the login request. It connects to the MySQL database and queries the table used to store the registration information. @mysql_connect("localhost", "mysql_login", "mysql_pwd") or die("Cannot connect to DB!");@mysql_select_db("tbl_login") or die("Cannot select DB!");$sql="SELECT password, email FROM login_tbl WHERE loginid='".$loginid."'";$r = mysql_query($sql);if(!$r) { $err=mysql_error(); print $err; exit();}if(mysql_affected_rows()==0){ print "no such login in the system. please try again."; exit();}else { $row=mysql_fetch_array($r); $password=$row["password"]; $email=$row["email"]; $subject="your password"; $header="from:you@yourdomain.com"; $content="your password is ".$password; mail($email, $subject, $row, $header); print "An email containing the password has been sent to you"; } As in component 1, the code excerpt assumes that the MySQL table that is used to store the registration data is named tbl_login and contains 3 fields - the loginid, password and email fields. The value of the $loginid variable is passed from the form in forgot.html using the post method. ================================================================ Conclusion The above example is to illustrate how a very basic login system can be implemented. The example can be enhanced to include password encryption and additional functionality - e.g. to allow users to edit their login information. Used with the author's permission.
MORE RESOURCES: Unable to open RSS Feed $XMLfilename with error HTTP ERROR: 404, exiting |
RELATED ARTICLES
Traffic for Webmasters "If you build it, they will come"; is an age old phenomenon for webmasters that they develop the website and visitors themselves would visit that. This may be true for only a handful of websites but the most important and crucial topic for any webmaster today is to how to get targeted traffic to his website. Why You Need a Website You hear a great deal about the Internet these days -- that it's revolutionised communication .. How To Start Your Own Website I'm one of those people that always wanted a website, but had no clue as to using the internet. I could check my email and that was about it. Improving Usability for Screen Reader Users Simply ensuring your website is accessible to screen reader users is unfortunately not enough to ensure these users can find what they're looking for in a reasonably quick and efficient manner. Even if your site is accessible to screen reader users, its usability could be so incredibly poor that they needn't have bothered coming to your site. Pick Up Your Own Domain Name Think up a name and check if yourname.com is available. From Search to Sale The Internet car buyer is an elusive animal. Trying to hunt them down for the kill is not to be taken lightly. A Beginners Guide to Server Side Includes An Introduction to Server Side IncludesBeginner? That's OK!While much has been written about Server Side Includes (SSIs -also known as Virtual Includes) much of this information is designed for intermediate to advanced webmasters. This article is aimed at beginners. 9 Keys to an Effective Website Many small companies choose not to invest in a professionally designed website, although a well-designed Web site may raise the company's level of professionalism and exposure - AND drive business and sales!Make sure your website is working for you with the following characteristics:Usability enables your users to get the most out of your site. This means that the site's navigation is consistent, clear and easy to follow; forms and links are in working order; and the information on the site is current and answers incoming clients' potential questions. You May Be Losing Valuable Traffic - And Not Even Know It! Here's something you may never have thought of before:If I were to type your domain name?http://www.yourdomain. Three Way Linking - Webmaster Strategy Three way linking and concerns.For many years SEO experts were happy with two way linking or reciprocal linking but in due time researchers anticipated a change in Search Engine's Algo. Making Your Website Shine! Attract and Keep Visitors at Your Site! When you consider the billions of individuals and companies on the net who are attempting to influence visitors with their wares, it is vitally important that your site offers something out of the ordinary. An important fact to remember is that what the site says is far more important than how it looks. 10 Simple Steps: Its Magic If You can E-Mail You can Update Your Web Page Dynamically Dynamically Update Your Web Pages Via E-MailIf you can Send an E-Mail you can Dynamically update Your Web Pages. Following a few simple Steps and the Power of Blogs you can Mail in your Web Page Updates anytime you want too. 12 Essential Tips to a Professional Business Website 1. Choose a big enough font size. Maintaining Your Business Website QUESTION: Should I build and maintain my business Web site myself or pay someone else to do the work for me? -- Wesley L.ANSWER:When you say, pay someone else to do the work for you, Wesley, I am going to assume that you are talking about hiring a professional Web site designer to do the work and not your next-door neighbor's teenage son. How Web Templates Are Helping Online Businesses to MultiplyTheir Income Web templates by nature are created to aid and ease thestrenuous process of a typical web development phase. Ideacollection, analysis, research, design are just a small partof a bigger picture. Guide to Internet Business - Design and Content After deciding what kind of internet business you want to do, it's time to start planning the design and content of your business. Many people make the mistake of skipping this step, choosing instead to immediately start work on their website. Ten Major Tips to Develop a Multilingual Web Site to Work If you are living in a country that its native language is something rather than English language, then you may like to develop your website to offer content in the language of your own country.There are millions of websites on the Internet that are all in English language but there are billions of people on the earth that speak in a different language and are not familiar with English language. Improve Web Sales Figures Forever And Ever Amen! "How do I improve web site sales figures?" The CEO roared at the web developer. The web developer looked at his boss a little confused and mumbled something about it not being his core competence with him being a programmer and all. Why Local Service Companies Should Have a Website The Internet is being used by local service business to improve sales today. Sales are improved because a website gives a company more credibility and in some cases generates leads. You Dont Know Which One I still remember it very clear .. |
home | site map | contact us |