From our monthly sponsor: Ship customer-facing metrics fast with Keen.io. Collect, store, query, & display stunning analytics.
Update: There’s a new version of this Login Script.
Here’s a PHP Login System, based on the one developed by jpmaster77: PHP Login System with Admin Features
Focusing only on the core functionalities and aimed to improve certain parts of the code, I took out some functionalities and added some others:
- Admin features
- Active guests, active users, banned users
- Global variables
- Links to other pages after the login
All these can be easily reintegrated if you want. I focused on the login and registration part, leaving out the content “inside”.
- PHP 5 instead of PHP 4
- mysqli extension
- Send registration confirmation link to the email address
- Reset password feature without sending password to the email. Instead a link is sent to reset the password
- UTF8 support
- InnoDB transactions for database operations
- Registration and form validations made with AJAX
- Captcha image in registration form to avoid spam
Here are the most important settings for the installation of the login system.
Set database access in constants.php:
define("DB_SERVER", "localhost"); //type mysql server url define("DB_USER", "XXXXXXX"); //type mysql user define("DB_PASS", "XXXXXXX"); //type mysql password define("DB_NAME", "XXXXXXX"); //type mysql database name
Further, you have to set the right location of the following files for the mail sending functions:
The only table that you have to create in your MySQL database is the following:
CREATE TABLE users( pk_user int unsigned not null auto_increment, email varchar(120) not null, flname varchar(100) not null, password varchar(64) not null, usr_signup_date timestamp not null default CURRENT_TIMESTAMP, usr_userid varchar(32), # for the account confirmation: usr_confirm_hash varchar(255) not null, # after confirming its set to 1: usr_is_confirmed tinyint(1) not null default 0, # when the user resets password (forgot password): usr_resetpassword_hash varchar(255) not null, unique index(email), primary key(pk_user) )type=innodb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
I will soon post a new version, as I am currently improving some points.
See a demo here: PHP Login System Demo
You can download the source code here: PHP Login System ZIP