DevelNext – Активация программы через сервер с привязкой к железу
Программа передаёт ключ и id железа, на их основе сервер генерирует уникальный файл лицензии для каждого ПК. В последующие запуски активация через Интернет не требуется, т.к. данные об активации хранятся в лицензионном файле. В демо я сделал id железа = хэш sha-1 от uuid и id мат.платы, поэтому никакие личные данные никуда не утекут. Можно не вешать ssl на сервер, вряд ли что-то можно будет сделать, даже перехватив данные.
Серверная часть
Клиент
Инструкция по установке
1. Установка на сервер
1.1 Скачать и распаковать скрипты для сервера
1.2 Создать базу данных SQL, сделать импорт файла dn.sql
1.3 Отредактировать файл config.php: указать логин/пароль для авторизации, параметры для подключения к MySQL, придумать секретный ключ, которым будет подписываться файл лицензии, его нужно будет прописать в программе-клиенте (далее).
2. Конфигурация клиента
2.1 Скачиваем проект с программой клиентом, открываем модуль Activation
2.2 В модуле указываем секретный ключ (такой же, как в конфигурации сервера из п.1.3), URL сервера, где установлен скрипт авторизации.
2.3 Для работы к проекту необходимо подключить пакет Windows
2.4 Обязательно отметьте галочку компилировать в байт-код, иначе смысла от такой активации не будет
Активация демо проекта настроена на этот сервер
Демо админ-панель
Открыть админ-панель в новом окне
[UPD] Исправлена ошибка “Uncaught Error: Cannot call ‘getTime’ method of non-object…”
Помогите , вот такая ошибка когда ввожу ключ активации
Fatal error: Uncaught Error: Class ‘bundle\windows\Windows’ not found in res://app/modules/Activation.php on line 98, position 33
Stack Trace:
#0 app\forms\ActivationForm->doActivateAction() called at [res://php/gui/UXNodeWrapper.php:252]
#1 app\modules\Activation::getLicense() called at [res://app/forms/ActivationForm.php:22]
#2 app\modules\Activation::getSystemID() called at [res://app/modules/Activation.php:74]
#3 {main}
thrown in res://app/modules/Activation.php on line 98
Привет. Ты просто не правильно подключил сервер с хостом . Просто толку от программы мало так как меняешь дату и время на компютере и активация слетает ! нет проверки по интернету , я уже замучался искать решение
Если на одном ПК работают и программа, и локальный веб сервер, то конечно будет слетать активация при смене времени
Привет..у меня сервер на Хосте не на локальном компютере . Может где нужно поставить галочку ?? А то действительно программа становится без смысла. Дай пожалуйста подробную инструкцию по Активации продукта . За раннее спасибо !
Привет всем уже всю голову изломал !! Помогите пожалуйста при в воде ключа лицензии появляется вот эта ошибка!
ошибка: java.io.ioexception: cannot run program
ЧТО ДЕЛАТЬ???
Короче сам разобрался проблема в пакете Windows 2.2 просто поставил версию 2.0 и заработало всё нормально ..
Но к сожалению есть дыра с временим если на ПК меняешь дату то лицензия не работает пока не знаю как это исправить так как я новичок и не понимаю код. Если есть люди кто может помочь то пожалуйста помогите с этим … За раннее спасибо ..
Всё настроил, работает, помогите сделать проверку по времени в интернете, ниже способы описывали – пробовал, всё компилируется, но попросту не работает проверка.
Помогите с настройкой за вознаграждение! При переходе на сайт ‘Новый ключ добавлен!’, ‘keyDeleted’ => ‘Ключ удалён’, ‘keyEdited’ => ‘Ключ изменён’, ]; if(isset($messages[$_GET[‘message’]])){ ?>
PHP перепробовал все версии, от 5 до 8.
в php.ini прописывал short_open_tag = on
Помогите, отблагодарю $
Привет, распаковал, установил на сервер, изменил конфиг, при HTTP авторизации просто перезагружается страница. Опишу подробно: захожу на index.php, ввожу авторотационные данные, которые указаны в config.php, после этого просто страница перезагружается и снова просит ввести эти данные, то есть я даже не могу просмотреть таблицу. Если в файле index.php убрать строки 4-8, то авторизации не будет и я получаю доступ к таблице: просмотр, добавление и удаление ключей работают отлично. Как сделать авторизацию ?
Как решить проблему с ошибкой: Ключ недействительный ?
помогите, в программе когда ввожу ключ активаций то выдает такую ошыбку:
Fatal error: Uncaught Error: Class ‘bundle\windows\Windows’ not found in res://app/modules/Activation.php on line 98, position 33
Stack Trace:
#0 app\forms\ActivationForm->doActivateAction() called at [res://php/gui/UXNodeWrapper.php:252]
#1 app\modules\Activation::getLicense() called at [res://app/forms/ActivationForm.php:22]
#2 app\modules\Activation::getSystemID() called at [res://app/modules/Activation.php:74]
#3 {main}
thrown in res://app/modules/Activation.php on line 98
Ошибка в 26 строке, что делать?’Новый ключ добавлен!’, ‘keyDeleted’ => ‘Ключ удалён’, ‘keyEdited’ => ‘Ключ изменён’, ]; if(isset($messages[$_GET[‘message’]])){ ?>
Notice: Undefined index: message in /storage/ssd4/718/15583718/public_html/index.php on line 26
Notice: Undefined variable: messages in /storage/ssd4/718/15583718/public_html/index.php on line 26
Notice: Trying to access array offset on value of type null in /storage/ssd4/718/15583718/public_html/index.php on line 26
Теперь только ‘Новый ключ добавлен!’, ‘keyDeleted’ => ‘Ключ удалён’, ‘keyEdited’ => ‘Ключ изменён’, ]; if(isset($messages[$_GET[‘message’]])){ ?>
Исправил? Отпишись если да
В программе реализовал это и все отлично! Такой вопрос – можно ли и как это сделать, использовать эту авторизацию через эту же базу данных, использовать для авторизации на сайте?
Помоги пожалуйста дс SkeTlik#1006, а то не получается
Помоги ошибка на сайте какае-то ‘Новый ключ добавлен!’, ‘keyDeleted’ => ‘Ключ удалён’, ‘keyEdited’ => ‘Ключ изменён’, ]; if(isset($messages[$_GET[‘message’]])){ ?>
Смотрим INFO APLICATION всегда и начинающим как я Секретный ключ не понятен
Не понял вишку что куда ставить зачм и как попонятние надо объяснять .
[ERROR] Для работы данного проекта необходимо установить пакет расширений Windows версии 1.0
[ERROR] Скачать данный пакет можно по ссылке: https://tssaltan.ru/1156.develnext-windows/#download
не могу найти версию 1.0
С версией 2.2 не работает
Установил веб часть, при заходе на сайт в input полях выводит текст по типу: <?=implode, <?=key. Как фиксить
https://imgur.com/a/Ukh1Bnu
ошибка: WindowsScriptHOst Error : Отсуствуют экземпляры.
Что делать?
Здравствуйте. Можете дать свой вк? телеграмм или дискорд? Хотел бы с вами связаться и обсудить несколько вопросов. Конечно же, не за бесплатно.
Ничего не работает, что бы я не вводил пишет “ошибка. Полученная лицензия недействительна”. Файл license приходит пустой.
Значит неправильно установлен скрипт на сервере
Как решил проблему?
Решили как то проблему?
пишет что Полученая лицензия не действительна, самое что интересно без разницы написал ты ключ или нет, один хрен выдает это. Тобишь софт даже не чекает что ты ему пишешь
таже проблема
Все работает кроме : создаю ключ он создается в keys он тоже добавляется но когда вожу ключ в программу пишет :
Получена-я лицензия не действительна..
все работает кроме , при активации ключа пишет
Ошибка: Для активации необходимо интернет-соединение , в чем проблема может быть ?
Отличная программа , если у когота не работает то пишите ему : https://vk.com/greentopfox
Извиняюсь если очевидная ошибка,но не совсем силён в этой области
Веб морда работает как надо,взаимодействие скрипта с базой в норме.
При запуске клиента сразу ошибка такого плана
И крутит бесконечно
Fatal error: Uncaught Error: Class ‘bundle\windows\Windows’ not found in res://app/modules/Activation.php on line 98, position 33
При запуске проекта клиента пишет что нет пакета расширений Windows 2.0. Остальное работает. Помоги плиз!
Помогу с настройкой, чтобы не доставили TsSaltan. Но не спамьте только)
В вконтакте лучше писать, иначе тут не часто отшиваюсь
помог спасибо
Помогите! В программе пишет для активации необходима интернет соединение!
TsSaltan, как тебе скрин отправить?
Можно задать вопрос в группе вк или кинуть сюда прямую ссылку на скрине
Ошибка в тексте: “т.к. программа скомпилирована в байткод, достать его будет проблематично”
Строки не переводятся в байткод, и их легко достать из файлов проги. Лучше всего шифровать все это дело. Тем более если хостинг слабый, ведь часто люди просто закидывают слабые сервера (например, от 000webhost) запросами, чем можно легко положить человеку аккаунт на время, а в конце он может и бан словить.
Проблематично не есть невозможно, достать возможно любую информацию из любой скомпилированной программы, дело времени и навыков.
Клиент -> http://hub.develnext.org/project/XwPQonrLkF
{“code”:404,”message”:”HTTP 404 Not Found”}
Сервер dn барахлит, перезалил
https://tssaltan.top/download/1894/
Спасибо)
Fatal error: Uncaught Error: Cannot call ‘getTime’ method of non-object in res://app/modules/Activation.php on line 57, position 105
Что делать?
Как я понял он не может вызвать метод “getTime” для не-обьекта
Fatal error: Uncaught Error: Cannot call ‘getTime’ method of non-object in res://app/modules/Activation.php on line 57, position 105
Stack Trace:
#0 {closure}() called at [res://php/gui/UXNodeWrapper.php:252]
#1 app\forms\MainFormBETA2->doLabel4MouseDownLeft() called at [res://php/gui/framework/event/MousedownEventAdapter.php:37]
#2 php\gui\framework\Application->showFormAndWait() called at [res://app/forms/MainFormBETA2.php:97]
#3 php\gui\UXForm->showAndWait() called at [res://php/gui/framework/Application.php:369]
#4 {closure}() called at [res://timer/AccurateTimer.php:173]
#5 {closure}() called at [res://timer/AccurateTimer.php:174]
#6 app\modules\Activation::is() called at [res://app/forms/ActivationCheck.php:22]
#7 app\modules\Activation::getLicenseFileParams() called at [res://app/modules/Activation.php:28]
#8 {main}
thrown in res://app/modules/Activation.php on line 57
Иногда вылазит такая ошибка, если честно не помню при каком условии, возможно, когда файл лицензии ещё не создан
после каких действий возникает ошибка?
Перезалил, возможно заработает
https://tssaltan.top/download/1894/
В mysql в каком формате хранится дата? Нули в конце есть (например, 2019-03-30 00:00:00)? В файле license.key дата в таком же формате?
щас попробую
Похоже это проблема сервера, потому что с твоим сервером всё идеально, а с моим нет(
B299-3512-399C-E282 2019-04-16 00:00:00
вот такой формат на сервере
Файл лицензии пустой
Возможно что-то не даёт записать в файл, либо антивирус, либо нет прав на запись в эту директорию.
Какие параметры сервера? Если не ошибаюсь, нужен php > 5.6.
Не могу определить. У меня хостинг Beget free
Красава!
Как сделать так, чтобы программа сверяла дату с интернетом, а не Пк? Просто тогда какой смысл от такой привязки, когда можно мотать время назад и пользоваться программой сколько хочешь?
На сервере можно сделать, чтоб он возвращал метку времени, все исходники открыты. Если настроен SSL, будет ошибка подключения, т.к. метки времени не совпадают.
Ничего не понял.
Как это сделать?
На сервере, например
В программе
А в программу куда вставлять?
Я уже не помню код программы, писал почти 2 года назад, использовать соответственно там где встречается класс или функция time
Там есть $now
Блин, ничего не получается, мб поможешь?
При заходе на сайт вылазит это:
‘Новый ключ добавлен!’, ‘keyDeleted’ => ‘Ключ удалён’, ‘keyEdited’ => ‘Ключ изменён’, ]; if(isset($messages[$_GET[‘message’]])){ ?>
Как исправить?
Если отображается исходный код скрипта, значит на сервере не настроен php или вообще не установлен.
установлен php 5.4 но я ставил как и ниже так и выше, хост beget и на 000webhost пробовал, на каком хостинге посоветуете вы??
Быть может не включена поддержка коротких тегов , я в скриптах везде только их использовал, возможно поможет исправление всех тегов на
+ придётся заменить все = на
или же, если есть возможность, можно изменить параметр в php.ini
short_open_tag=on
не могли бы вы php.ini поменять и скинуть, потому как поменял все < ?= на < ?php echo
и вообще перестала отображаться страница,
и еще вопрос при компеляции в develnext проблема с Windows bundle загрузчик кричит что нет 1 версии, я установил потому что v2
а v1 не ставиться вылетает ошибка в develnext что делать?((
В php.ini нужно указать параметр
short_open_tag=on
если в исходном коде страницы (ctrl+U) виден код php, значит на сервере не настроен php обработчик
По поводу ошибки компиляции, если не ошибаюсь, в загрузчике (AppModule) есть код проверки на версию модуля, его нужно убрать
и как можно с вами связаться?? за помощь готов отблагодарить $
если нет доступа к php.ini, то стоит попробувать в файле .htaccess добавить php_value short_open_tag on
а если файла .htaccess нет, то просто создайте его
Друг, можешь помочь за вознаграждение с настройкой?
Не туда написал)
хм а почему вы не запишите видео урок как все это сделать так было бы удобнее а то так не оч. пон. и появ. много вопросов.
Мне больше нравится текстовый формат, тем более тут нечего снимать, если хоть немного разбираешься в программировании, вопросов не должно возникнуть
Помогите! В программе пишет для активации необходима интернет соединение!
template.php не добавляет ключ, можно ли как нибудь в ручную его добавить?
Всё, нашел. Надо выполнить sql запрос для добавления ключа.
INSERT INTO
keys
(id
,key
,expires
,num
) VALUES (1, ‘test’, ‘2019-08-10 00:00:00’, ‘8’);Привет, исходник решил попробовать, и установил на тестовый сервер, настроив его под себя, и когда запускаю тестовый проект, мне пишет ошибку что отсутствует пакет windows и предлагает его сразу скачать, хотя у меня уже есть установленный пакет 2.0 и подключен к проетку, после ошибки проект останавливается.
Я тоже с этим поборолся слегка… Ты возьми, перейди по ссылки предлагаемой и скачай только версию 1.0 (ее как раз ссылка и предлагает) , и поставь, вернее система спросить заменить на более раннюю версию, отвечай да… И тогда все заработает
Спасибо, твой метод помог)
Привет, у меня такая проблема скачать DevelNext 16.7.0 скачал проект установил пакет (Проект пакеты добавить пакет ) и пишет все равно, что нужно скачать пакет dn-windows-bundle.dnbundle в чем может быть проблема ? Ибо я впервые пользуюсь данной программой.
Пакет мало установить в систему, ее в при конкретном проекте, нужно перетащить в верхнее поле с нижнего, где она отображалась как установленная…
Одним и тем же ключом активировал несколько программ на разных компьютерах. Вывод, нет привязки по железу…
Извиняюсь… разобрался )))
Не работает активация в online режиме лог фаил жалуется на несоответствие времени
Почему у меня весь template.html в каракулях?
Открой в кодировке utf8
Блин это же гениально как я до этого не мог додуматься
и знаешь что ты крутой кодер или как вас там завут
Что такое ‘Авторизационные данные’ в config.php к чему они?
Параметры для подключения к mysql
При заходе на сайт вылазит это:
‘Новый ключ добавлен!’, ‘keyDeleted’ => ‘Ключ удалён’, ‘keyEdited’ => ‘Ключ изменён’, ]; if(isset($messages[$_GET[‘message’]])){ ?>
Как исправить?
Система очень уязвима. Смотри…. когда из базы удалить ключ и отмотать время на компе (клиенте) , то можно пользоваться программой сколько захочешь (отматывая время) при условии что нет ключа. И просто без удаления ключа из базы данных, можно отмотать время назад и юзать прогу сколько угодно. Т.к программа обращается к серверу когда лицензия закончится( а время она берет не из сервера а из компа-клиента).
Т.е в базе данных время истекло, а на компе-клиенте нет, и юзай прогу сколько влезет отматывая время.
тестировал на 2-х ноутбуках в течении 3-х дней
Если не трудно подскажите код как можно дату сверить со временем в интернете? Я прописывал в Activation.php $now = Time::now(TimeZone::of(‘Moscow’))->getTime(); но это время компютера а как в интернет выйти?
Создаешь файл php на серве пишешь туда это
date_default_timezone_set(“Europe/Moscow”);
$today[1] = date(“H:i:s”);
$date = gmdate(“Y-m-d $today[1]”);
$timestamp = strtotime($date);
echo $timestamp;
На $now в клиенте ставишь file_get_contents этого файлика profit
Пожалуйста помоги разобраться – почему когда скрипт на сервере online выдает ошибку после ввода серийного номера –
Fatal error: Uncaught Error: Cannot call ‘getTime’ method of non-object in res://app/modules/Activation.php on line 63, position 105
Stack Trace:
#0 app\forms\ActivationForm->doActivateAction() called at [res://php/gui/UXNodeWrapper.php:252]
#1 app\modules\Activation::getLicense() called at [res://app/forms/ActivationForm.php:22]
#2 app\modules\Activation::is() called at [res://app/modules/Activation.php:86]
#3 app\modules\Activation::getLicenseFileParams() called at [res://app/modules/Activation.php:33]
#4 {main}
thrown in res://app/modules/Activation.php on line 63
При нажатии на “Получить лицензию” выдаёт ошибку Fatal error: Uncaught Error: Cannot call ‘getTime’ method of non-object in res://app/modules/Activation.php on line 57, position 105
Я заметил что эта ошибка зависит от того имеется ли какая-нибудь надпись в окне ввода при стартовом запуске программы если да то начинает выдавать такую ошибку но если окно ввода пусто при первом запуске то все нормально. Причем окно запуска нужно сделать пустым еще до сборки программы в devel…
Эта ошибка будет существовать до тех пора, пока не удалишь файл лицензии, он будет нулевого размера! Но при повторном запуске скрипта протекции, сразу не будет, выскочит форма ввода ключа, но с сервером связи (с требуемой конфигурацией) не, и файл лицензии просто создастся пустой, т.е нулевой. это связано с тем, что хостинг, где установлена серверная часть скрипта, не соответствует по настройкам (в файле php.ini) с требуемыми. С какими, я не стал выяснять, просто сменил хостинг на иной, и все заработало.
Parse error: syntax error, unexpected ‘[‘ in /var/www/u0314106/data/www/mushroomeater.pw/license/index.php on line 18
нужен php версии 5.4 или выше
Привет у ошибка при вводе лицензии ( java.io.IOException: Cannot run program )
Скажите пожалуйста что делать? где копать ??
Спасибо, отличный исходник, пригодится!