With this class you can easely create a login page that checks the data in a XML , CSV or database table. The power of the script lays in that you can use it on every MySQL database table even on existing tables from other software packages like Wordpress, Mediawiki, MantisBt, ..... This is because you can define a custom password encryption function, user and password field. The combination of this functionalities makes it a universal usable class. I created this class because most of my clients just need a simple login form without other advanced features like user roles and so on. Use example: We have a database table that holds our users. In this table there is a field user_field also a password field(pass_field) and a salt field(salt_field). Our password encryption is created like this:
password_hash = md5(password . "-" . salt);
To create a loginsystem based on this table we can use this code:
include("Login.php");
$Login = new Login(); $Login->InitDatabase("localost", "dbuser", "dbpass", "dbname", "user_table", "user_field", "pass_field"); $Login->SetPasswordEncoder("myhash");
// Custom password encoder function myhash($password, $fields){ return md5($password . "-" . $fields->salt_field); }
if($Login->Test($_POST['username'], $_POST['password'])){ echo "Correct"; }else{ echo "Incorrect"; }
If you want to change this example above to use a CSV file (user.csv) as datasource instead of a database table the only thing you need to do is replacing:
$Login->InitDatabase("localhost", "dbuser" ....
with
$Login->InitCsv("users.csv"); or if you prefer xml: $Login->InitXml("users.xml"); Extendible: The class is very easy to extend with some custom code. In the download I included two different extension. One for writing login actions to a log file and one that saves the current loggedin user in a session so that you can visit different pages without having to login again. The extensions are very easy to use. The only difference is that you need to include the extension besides the Login.php class. And instead of creating an instance of the Login class you create an instance of the extended SessionLogin class. The rest of the code is the same.
An example how to use the SessionLogin extension: include("Login.php"); include("SessionLogin.php"); $Login = new SessionLogin(); // The rest of the code is the same as before
Examples included:
CSV file MatnisBt database MediaWiki database Wordpress database Xml file Login form with sessions
Demo You can do a login on the demo page with: admin/test sitebase/mypassword
Full PDF documation is also included in the download.