Некоторое время назад я начал писать скрипт проверки лицензии. Это выглядит так:
if (! (ini_get (allow_url_fopen))) exit ('Configuration Error: allow_url_fopen must be enabled on your server');
define ("LICENSE_SERV", "https://admin.devilshield.pl/check.php?key = ");
$ LICENSE_SERV = LICENSE_SERV;
$ LICENSE_KEY = LICENSE_KEY;
$ licserv = "$ LICENSE_SERV $ LICENSE_KEY";
$ lines = @file ($ licserv);
foreach ($ lines as $ line_num => $ line) {
$ license = htmlspecialchars ($ line);
if ($ license == "INVALID") {echo '<div style = "font-family: Roboto, sans-serif; font-size: 14px; z-index: 100000; height: 7px; padding: 12px; color: white; position: fixed; top: -8px; left: 0; bottom: 20px; width: 100%; background: # 000000e6; text-align: center; "> Error loading AntiDDoS by DevilShield.pl v1.0! Please check the license! </ Div> ';}
Это «ДЕЙСТВИТЕЛЬНО» или «НЕДЕЙСТВИТЕЛЬНО». Если возвращается «INVALID», это сообщение об ошибке для следующей части скрипта.
Проблема в том, что это не работает. Эта ошибка всегда приводится, даже если такая лицензия существует
индекс.php:
require_once ('start.php'); <br>
define ("LICENSE_KEY", "8080-8080-8080-8080");
Я собираюсь закинуть файлы на отдельный хост, чтобы сохранить этот фрагмент в index.php. Есть ли другой вариант, кроме define();?
P.S. Я родом из Польши, и мне 15 лет. К сожалению, мой английский не идеален, поэтому я использую Google Translate.
да. Вместо использования определения вы должны сделать это функция, а затем вы можете передать лицензию как переменную в функцию. Еще лучше было бы использовать класс.
и как бы вы заставили пользователя продолжать использовать этот код, а не просто удалить проверку лицензии.
@AbraCadaver У меня нет ошибок синтаксического анализа
@cale_b Как это сделать?
или как избежать перебора пользователями действительных ключей, таких как 8080-8080-8080-8080 и 8080-8080-8080-8081 end и т. д.?
@RaymondNijland Если вам удастся исправить то, что есть в этой теме, я попробую сделать присвоение доменной лицензии во 2-й версии скрипта. На данный момент я хочу закончить версию 1
Если это ваш реальный код, и вы не получаете ошибок синтаксического анализа от $ LICENSE_SERV, вы не пишете PHP.






Попробуйте это:
if (!(ini_get('allow_url_fopen'))) {
exit('Something is wronguration Error: allow_url_fopen must be enabled on your server');
}
define('LICENSE_SERV', 'https://admin.devilshield.pl/check.php?key=');
define('LICENSE_KEY', 'error-8080-8080-8080-8080');
$LICENSE_SERV = LICENSE_SERV;
$LICENSE_KEY = LICENSE_KEY;
$licserv = "{$LICENSE_SERV}{$LICENSE_KEY}";
$license = file($licserv);
if (is_array($license) && $license[0] === 'INVALID') {
echo '
<div style = "font-family: Roboto, sans-serif; font-size: 14px; z-index: 100000; height: 7px; padding: 12px; color: white; position: fixed; top: -8px; left: 0; bottom: 20px; width: 100%; background: #000000e6; text-align: center;">
Error loading AntiDDoS by DevilShield.pl v1.0! Please check the license!
</div>
';
}
Почему бы не использовать file_get_contents?
Разве вы не получаете Разобрать ошибки? У вас есть пробел между
$и именем переменной.