Как сделать проверку лицензии в PHP

Некоторое время назад я начал писать скрипт проверки лицензии. Это выглядит так:

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 02.04.2019 19:34

да. Вместо использования определения вы должны сделать это функция, а затем вы можете передать лицензию как переменную в функцию. Еще лучше было бы использовать класс.

random_user_name 02.04.2019 19:36

и как бы вы заставили пользователя продолжать использовать этот код, а не просто удалить проверку лицензии.

Raymond Nijland 02.04.2019 19:47

@AbraCadaver У меня нет ошибок синтаксического анализа

ravenekse 02.04.2019 19:47

@cale_b Как это сделать?

ravenekse 02.04.2019 19:48

или как избежать перебора пользователями действительных ключей, таких как 8080-8080-8080-8080 и 8080-8080-8080-8081 end и т. д.?

Raymond Nijland 02.04.2019 19:49

@RaymondNijland Если вам удастся исправить то, что есть в этой теме, я попробую сделать присвоение доменной лицензии во 2-й версии скрипта. На данный момент я хочу закончить версию 1

ravenekse 02.04.2019 20:00

Если это ваш реальный код, и вы не получаете ошибок синтаксического анализа от $ LICENSE_SERV, вы не пишете PHP.

ceejayoz 02.04.2019 20:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
8
1 332
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте это:

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?

Другие вопросы по теме