BranislavXLS
New member
Hello @gdgsupport,
I am running the XLS Padlock Activation Kit Version 2025.0 on my web hosting (Websupport.sk, shared Linux). My compiled .exe performs online validation against https://ferovezakazky.sk/activation/dovalidation and key generation against /activation/getactivation.
The problem:
After my hosting provider upgraded PHP to 8.4, all activation/validation endpoints started returning HTTP 500 Internal Server Error. The PHP error log shows:
<span><span>PHP Fatal error: Constant FILTER_SANITIZE_STRING is deprecated</span></span>
This constant was deprecated in PHP 8.1 and completely removed in PHP 8.4. The Activation Kit code (specifically MainController.php) still uses it, which triggers a fatal error.
What I tried (none worked):
The cleanest output I managed (with .user.ini + prepend) was a 124-byte response — but the server sent it with Transfer-Encoding: chunked, which the XLS Padlock client (Pascal) apparently cannot parse. It needs Content-Length.
My questions:
Setup details:
Any guidance would be greatly appreciated — my product launch is blocked until validation works again.
Thank you,Branislav
I am running the XLS Padlock Activation Kit Version 2025.0 on my web hosting (Websupport.sk, shared Linux). My compiled .exe performs online validation against https://ferovezakazky.sk/activation/dovalidation and key generation against /activation/getactivation.
The problem:
After my hosting provider upgraded PHP to 8.4, all activation/validation endpoints started returning HTTP 500 Internal Server Error. The PHP error log shows:
<span><span>PHP Fatal error: Constant FILTER_SANITIZE_STRING is deprecated</span></span>
This constant was deprecated in PHP 8.1 and completely removed in PHP 8.4. The Activation Kit code (specifically MainController.php) still uses it, which triggers a fatal error.
What I tried (none worked):
- Asked hosting to downgrade PHP back to 8.2. The error persists, because Websupport's PHP-FPM configuration converts E_DEPRECATED warnings into fatal errors before index.php even loads.
- error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT); at the top of index.php — ignored, deprecation is raised earlier in the request lifecycle.
- Polyfill if (!defined('FILTER_SANITIZE_STRING')) define('FILTER_SANITIZE_STRING', 513); — does not help on 8.2 (constant still exists but emits deprecation), and on 8.4 the call to filter_var($x, FILTER_SANITIZE_STRING) itself fails.
- .htaccess with php_value directives — blocked by Websupport.
- .user.ini with auto_prepend_file and a custom prepend script — the prepend loads, but the deprecation warning is still emitted by the PHP-FPM layer before user code runs.
- Custom set_error_handler() — overridden by F3 framework's own handler.
- ob_start() / ob_clean() — output buffer is flushed with the 500 status before user code can intervene.
The cleanest output I managed (with .user.ini + prepend) was a 124-byte response — but the server sent it with Transfer-Encoding: chunked, which the XLS Padlock client (Pascal) apparently cannot parse. It needs Content-Length.
My questions:
- Is there an updated Activation Kit (2026 release?) that no longer uses FILTER_SANITIZE_STRING? If yes, where can I download it?
- If not, which file(s) should I patch to replace FILTER_SANITIZE_STRING with a PHP 8.4-compatible equivalent (e.g. htmlspecialchars() + strip_tags())? I want to make sure I do not break the encryption/decryption flow with defuse/php-encryption.
- Does the XLS Padlock client (Pascal binary inside the .exe) support Transfer-Encoding: chunked responses, or must the server always send Content-Length? This affects how I work around hosting-level interference.
- My maintenance subscription expired on 25.02.2026. I am ready to renew it immediately if it gives me access to an updated Activation Kit. What is the renewal procedure?
Setup details:
- XLS Padlock Activation Kit Version 2025.0
- Hosting: Websupport.sk (Simple plan, shared Linux, PHP 8.2 / 8.4 only — no opt-in for older versions)
- Framework: Fat-Free Framework (F3) v3.x as bundled with the kit
- WordPress on the same domain (the /activation/ folder is a separate F3 application)
- .htaccess rewrites /activation/(.*) → /activation/index.php correctly (verified)
- Endpoint URL: https://ferovezakazky.sk/activation/dovalidation and /activation/getactivation
Any guidance would be greatly appreciated — my product launch is blocked until validation works again.
Thank you,Branislav