Это довольно простая версия системы, но сейчас она должна работать. Он работает путем предоставления URL-адреса текущего сервера в качестве ключа, однако вы можете заменить его на уникальный идентификатор лицензии.
Для CMS / приложения:
<?php
define('SITE_INVALID', 'invalid');
define('AUTH_SITE', 'http://www.example.com/verify.php');
function verify_install($key){
$result = file_get_contents(AUTH_SITE.'?key='.urlencode($key));
if($result == SITE_INVALID){
return false;
}
// Valid
return true;
};
?>
Затем где-нибудь на вашей странице (в начале):
<?php
$site_key = $_SERVER['SERVER_NAME']; // Use current site URL (eg: www.example.com)
if(!verify_install($site_key)){
// Invalid
echo 'Your account is disabled';
exit();
}
// Continue as normal
?>
А на сервере лицензий:
<?php
define('SITE_VALID', 'valid');
define('SITE_INVALID', 'invalid');
function verify_remote_install(){
if(!isset($_GET['key'])){
// Nothing sent - assume fine
return true;
}
$key = urldecode($_GET['key']);
// (Check if key in database, etc)
$result = key_is_valid($key); // Replace with your own method
if(!$result){
// Invalid
return false;
}
// Valid
return true;
}
?>
Затем для проверки:
<?php
$result = verify_local_install();
if(!$result){
echo SITE_INVALID;
} else {
echo SITE_VALID;
}
?>
Вам нужно будет заменить функцию key_is_valid()
на ваш метод проверки ключа, независимо от того, проверяется ли он в базе данных или нет.
Кроме того, вам лучше предположить, что оно действительно, если вы не уверены (например, если подключение к серверу проверки не удается или ключ не отправлен), в этом случае может произойти что-то не так, что находится за пределами контроль пользователя, вы дадите им преимущество сомнения. Вы хотите, чтобы законные пользователи получали наилучшие впечатления и по возможности останавливали пиратов, а не причиняли неудобства своим платящим пользователям.
Как уже было сказано, любой, кто имеет базовые знания PHP (или даже умеет читать), может легко найти это и отключить, если код каким-то образом не запутан. Для этого вы можете найти приложение с открытым исходным кодом по адресу http://code.google.com/p/phpobfuscator/.. Если вы все еще хотите, чтобы разработчики могли модифицировать приложение, вы можете просто скрыть лицензионный код, поместить отдельный файл и дать ему фальшивое, невинное имя.