Welcome to PLM – the multilingual PHP Login-Module

Author: Tim Reeves, Current version: 3.0.0 (8. Oct. 2011)

This is a "live demo" – you are welcome to register and discover the power of PLM for yourself, see also note (2) below.

This module can be included in a PHP-Website to offer user registration and login, whereby the possibilities of a logged-in user are governed by a system of max. 31 system privileges and 31 opt-in groups (configurable, with associated read and write privileges). The "groups" are managed in the "edit account" module, govern up- and download possibilites in the repository browser, and can be used as selection criteria in user management (for example, for a mass mailing to a group or groups). Beyond that they can be accessed for your own purposes.

It stores its data in a DB, which it accesses through the Database Abstraction Layer. DAL currently allows completely transparent access to the Databases MySQL, MSSQL and MS-Access.

The basic login-module code is contained in a sub-directory; this example website also contains pages allowing profile-editing, up- and downloading to private and interest directories, and (for privileged users) user management. For those wishing to add further services to logged-in users it exports a range of values to the Superglobal $_SESSION.

The module offers two radically different approaches to user registration:

The configuration allows you to specify zero registration methods (temporarily disallow registration), either one, or both
(the latter works fine but is confusing for the user).

It also offers two different types of Login-ID:

The configuration allows you to specify zero login methods (disallow login), either one, or both
(the latter works fine and allows maximum flexibility for the user).

The module (incl. example pages) - about 16000 lines of code - offers the following features:

and also the following options (set mainly in the config files):

1) The module uses my own PHP class "DAL", Database Abstraction Layer, to access the DB. DAL extends PHP's PDO (which is a data access abstraction layer), providing various character set, query preparation and data formatting services, and hides the differences between MySQL, MSSQL and MS-Access. Extensions to other database types, which should not be too difficult to do, are most welcome!

2) Go on, give it a try: Superuser = "admin" with password "hallo". A user "manny", also with password "hallo",
    is not a Superuser but does have certain system privileges, to help you see how it works.
    Please don't delete any accounts which you did not create yourself.

3) Appropriate for mailing at the change of week via Cron-Job (to do)

Pages whose text consists only of Multilanguage-Messages can be called with the language as a GET-Parameter and thus need only be present once (here: logout, confirm, reminder, delete, profile, up/download, user management). Pages with more text must either be present once per language or use includes or PHP-Branches. In this module, "de/willkommen.php" is an example of a purely language-specific page.

 
Here are the further Readmes:  login-readme   mysql-readme   privileges-readme   import-export-readme