PHP Classes

PADL (PHP Application Distribution License System): Generate PHP application license keys

Recommend this page to a friend!
  Info   Screenshots Screenshots   View files View files (42)   DownloadInstall with Composer Download .zip   Reputation   Support forum (8)   Blog    
Ratings Unique User Downloads Download Rankings
StarStarStarStar 68%Total: 9,759 This week: 2All time: 147 This week: 96Up
Version License Categories
padl 1.0.0GNU Lesser Genera...Tools, Security
Description 

Author

This class can used to generate license style keys to control the distribution and functionality of PHP applications.

It generates license strings that can bind PHP applications to specific domains, specific servers, can only be executed during limited time period, or to restrictions placed on a home server within the license key.

The binding to server process attempts to use the server network card MAC address. This feature was tested on servers are Mac OS X (Darwin), Linux, Windows XP, although it may also work for FreeBSD, NetBSD, Solaris.

PADL also attempts to use information from $_SERVER variable to encode that server name, server IP, server application path and server application url to the license key. Part of the process also binds the IP Address from the $_SERVER variable if found, but it also attempts to parse the server config file (the same used to get the MAC address) for any more IPs.

The server binding can be disabled if required, and it also possible to block the key being generated for the localhost address (127.0.0.1).

The time limiting of the license uses a start period (and a given start offset to allow for time discrepancies) and an expiry date if required.

If required when validating a key it is also possible to dial home to check the license key on your own PADL License Server, examples are given.

The PHP_OS and PHP_VERSION of the php that the key was generated for is also encrypted into the key.

It is also possible to encrypt additional information into the license key to enable you to place restrictive features in your application to allow the creation of trialware or demoware.

This class is still in development however it is stable. A GUI is to follow.

Innovation Award
PHP Programming Innovation award winner
May 2005
Winner


Prize: One copy of the Zend Studio
There are several solutions to help developers protecting the PHP software of applications that they want to sell.

Usually the developers provide license keys with their software that include information about the licensed code, enabled features, authorized configuration of the environment on which it is being installed.

This helps the developers to limit the scope of usage of their software according to the type of software license that their clients purchase.

This way the developers can use the same software distribution for different configurations and prices and even trial versions.

This class provides a means to generate license keys that include encrypted information about the clients PHP environment and even a way to send the keys to the developers site so they can capture the client features and generate upgraded keys that can enable more features for clients that pay the upgrade price.

Manuel Lemos
Picture of Oliver Lillie
  Performance   Level  
Name: Oliver Lillie <contact>
Classes: 4 packages by
Country: Finland Finland
Age: 44
All time rank: 211 in Finland Finland
Week rank: 52 Down1 in Finland Finland Equal
Innovation award
Innovation award
Nominee: 2x

Winner: 1x

Recommendations

What is the best PHP license key generator script?
Geenerate, validate and expire a 10 digit code every 24 hours

Details

This class can used to generate license style keys to control the distribution and functionality of PHP applications. It generates license strings that can bind PHP applications to specific domains, specific servers, can only be executed during limited time period, or to restrictions placed on a home server within the license key. The binding to server process attempts to use the server network card MAC address. This feature was tested on servers are Mac OS X (Darwin), Linux, Windows XP, although it may also work for FreeBSD, NetBSD, Solaris. PADL also attempts to use information from $_SERVER variable to encode that server name, server IP, server application path and server application url to the license key. Part of the process also binds the IP Address from the $_SERVER variable if found, but it also attempts to parse the server config file (the same used to get the MAC address) for any more IPs. The server binding can be disabled if required, and it also possible to block the key being generated for the localhost address (127.0.0.1). The time limiting of the license uses a start period (and a given start offset to allow for time discrepancies) and an expiry date if required. If required when validating a key it is also possible to dial home to check the license key on your own PADL License Server, examples are given. The PHP_OS and PHP_VERSION of the php that the key was generated for is also encrypted into the key. It is also possible to encrypt additional information into the license key to enable you to place restrictive features in your application to allow the creation of trialware or demoware. This class is still in development however it is stable. A GUI is to follow. --------------------------- The original class has now been broken down into seperate classes, both for security and ease of use. The demo folder contains a demo single file application, you should note that both the app folder and server also contain seperate demo files. The App folder contains the classes that would be required by the application using this class. And the Server folder contains the class that would be used by your license server setup. The additional folder, Shared, contains the main distributionLicense class and is needed by both the app and server classes. The demo files should explain the new setup. I have added new features removed some old redundant ones, and updated others. I do eventually want to evolve this class into an application with a gui, and will be looking for help with that if anybody cares to offer.

Screenshots  
  • screens/license_illegal.jpg
  • screens/license_invalid.jpg
  • screens/license_ok.jpg
  Files folder image Files  
File Role Description
Files folder imageapp (11 files)
Files folder imageapp_demo (16 files)
Files folder imageserver (8 files)
Files folder imageshared (2 files)
Accessible without login Plain text file CHANGELOG Doc. CHANGELOG
Accessible without login Plain text file LICENSE Lic. License
Accessible without login Image file padl_icon.gif Icon PADL Icon
Accessible without login Plain text file README Doc. README
Accessible without login Plain text file TODO Doc. TODO

  Files folder image Files  /  app  
File Role Description
  Accessible without login Plain text file class.license.app.php Class Subclass Source
  Accessible without login Plain text file class.license.gen.php Class Subclass Source
  Accessible without login Plain text file example.callhome.php Example Demo file
  Accessible without login Plain text file example.generate.php Example Demo file
  Accessible without login Plain text file example.oninstall.php Example Demo file
  Accessible without login Plain text file example.security.lang.php Example Demo file
  Accessible without login Plain text file example.security.php Example Demo file
  Accessible without login Plain text file example.supplied.php Example Demo file
  Accessible without login Plain text file license.generated.dat Output License Key File
  Accessible without login Plain text file license.oninstall.dat Output License Key File
  Accessible without login Plain text file license.supplied.dat Output License Key File

  Files folder image Files  /  app_demo  
File Role Description
  Accessible without login Plain text file demo.app.lang.php Example Demo App Language File
  Accessible without login Plain text file demo.app.php Example Demo App
  Accessible without login Plain text file license.dat Data Demo App License Key
  Accessible without login Image file results_alert.gif Icon Demo GIF
  Accessible without login Image file results_bottom.gif Icon Demo GIF
  Accessible without login Image file results_empty.gif Icon Demo GIF
  Accessible without login Image file results_error.gif Icon Demo GIF
  Accessible without login Image file results_expired.gif Icon Demo GIF
  Accessible without login Image file results_illegal.gif Icon Demo GIF
  Accessible without login Image file results_invalid.gif Icon Demo GIF
  Accessible without login Image file results_left.gif Icon Demo GIF
  Accessible without login Image file results_ok.gif Icon Demo GIF
  Accessible without login Image file results_right.gif Icon Demo GIF
  Accessible without login Image file results_tminus.gif Icon Demo GIF
  Accessible without login Image file results_top.gif Icon Demo GIF
  Accessible without login Image file spacer.gif Icon Demo GIF

  Files folder image Files  /  server  
File Role Description
  Accessible without login Plain text file class.license.janitor.php Class Subclass Source
  Accessible without login Plain text file class.license.server.php Class Subclass Source
  Accessible without login Plain text file db.config.php Aux. Database config
  Accessible without login Plain text file db.installer.php Aux. SQL installer
  Accessible without login Plain text file db.mysql.sql Data License Server SQL
  Accessible without login Plain text file example.maintenance.php Example Demo file
  Accessible without login Plain text file example.receive.php Example Demo file
  Accessible without login Plain text file example.register.php Example Demo file

  Files folder image Files  /  shared  
File Role Description
  Accessible without login Plain text file class.license.lib.php Class Class Source
  Accessible without login Plain text file styles.css Data CSS

 Version Control Unique User Downloads Download Rankings  
 0%
Total:9,759
This week:2
All time:147
This week:96Up
User Ratings User Comments (1)
 All time
Utility:91%StarStarStarStarStar
Consistency:89%StarStarStarStarStar
Documentation:67%StarStarStarStar
Examples:75%StarStarStarStar
Tests:-
Videos:-
Overall:68%StarStarStarStar
Rank:368
 
No install docs not good!
13 years ago (Geno vitsg)
35%StarStar