Я пытаюсь использовать функцию ioncube_license_properties(), чтобы получить закодированное свойство в моем проекте. Но у меня проблема - функция возвращает false в методе класса и возвращает фактическое значение в файле процедуры.
У меня следующий код. Класс:
class User {
/**
* Check is can login with new user.
* @return bool
*/
public static function validateLicense()
{
if (function_exists('ioncube_license_properties')) {
$count = ioncube_license_properties()['allowedUserCount']['value']; // ioncube_license_properties() returns false there
if ($count === 10) {
//info($message . 'User can login.');
} else {
//warning($message . 'Access denied for.');
}
return $isCanLogin;
} else {
//warning('Can\'t find Ioncube function `ioncube_license_properties()`.');
return true;
}
}
}
простой файл php (это файл представления модели MVC):
if (function_exists('ioncube_license_properties')) {
var_dump(['validateLicense' => User::validateLicense()]); // false always
var_dump(['$allowedUserCount' => $allowedUserCount = ioncube_license_properties()['allowedUserCount']['value']]); // returns actual value int(10)
}
Почему функция возвращает неверное значение в методе класса и как это исправить?
Использование проекта Yii2.
@ Ник, я понял, в чем дело. Я кодирую файлы с помощью файла лицензии, но в файле класса не установил. В руководстве говорится, что ioncube_license_properties() вернет false, если файл закодирован без файла лицензии. Я дурак
Отлично, рад, что вы ее решили. Файлы лицензий зашифрованы, и помимо пароля, который вы можете установить, для ключа используется другая информация, которая предотвращает работу даже той же парольной фразы, которую использует кто-то другой. Таким образом, файлы должны быть закодированы, чтобы содержать соответствующие метаданные файла лицензии.






Ваш код плохой, поскольку он слепо предполагает, что возвращаемое значение ioncube_license_properties () является массивом. Что, если это не так? См. Руководство пользователя. Может быть еще что-нибудь?