My site has a login form which looks like this:
Email:__________
Password:________
Login
The website system has three types of users: users, employers and administrators, and they are stored in three tables:
CREATE TABLE users (
user_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
first_name VARCHAR(20) NOT NULL,
last_name VARCHAR(40) NOT NULL,
email VARCHAR(80) NOT NULL,
pass CHAR(60) NOT NULL,
user_phone VARCHAR(11) NOT NULL,
user_address VARCHAR(250) NOT NULL,
active CHAR(32) NULL,
last_login_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
last_login_ip VARCHAR(15) NOT NULL,
registration_time DATETIME NOT NULL,
registration_ip VARCHAR(15) NOT NULL,
PRIMARY KEY (user_id),
UNIQUE KEY (email),
INDEX login (email, pass)
) ENGINE = INNODB;
CREATE TABLE employers (
employer_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
first_name VARCHAR(20) NOT NULL,
last_name VARCHAR(40) NOT NULL,
company_name VARCHAR(80) NOT NULL,
email VARCHAR(80) NOT NULL,
pass CHAR(40) NOT NULL,
employer_phone VARCHAR(11) NOT NULL,
employer_mobile VARCHAR(11),
employer_address VARCHAR(250) NOT NULL,
active CHAR(32) NULL,
last_login_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
last_login_ip VARCHAR(15) NOT NULL,
registration_time DATETIME NOT NULL,
registration_ip VARCHAR(15) NOT NULL,
PRIMARY KEY (employer_id),
UNIQUE KEY (email),
INDEX login (email, pass)
) ENGINE = INNODB;
CREATE TABLE administrators (
admin_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
first_name VARCHAR(20) NOT NULL,
last_name VARCHAR(40) NOT NULL,
email VARCHAR(80) NOT NULL,
pass CHAR(40) NOT NULL,
last_login_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
last_login_ip VARCHAR(15) NOT NULL,
created_time DATETIME NOT NULL,
PRIMARY KEY (admin_id)
) ENGINE = INNODB;
After a user logs in, the login.php script will handle it. How does login.php tell this person is a user, employer or administrator? Login.php needs to validate users by query relative tables. Do I need to create a new table indicating the relationship between users/employers/administrators? If so, how will the new table look like?
Also, where can I find some PHP website source code that contains examples like this?