Blog Sections Open
Fixing WebLoginPE Authorization Loops in Opera on Protected Pages
A debugging guide for an older Evolution CMS edge case where protected pages and WebLoginPE caused inconsistent Opera behavior.
This article documented a very specific but very real bug: on protected pages that used WebLoginPE, Opera could cycle between an authentication error, a blank page, and the actual content.
When it happened
- a resource group protected the target document
- the unauthorized page itself rendered the login form
- Opera cached the unauthorized response poorly
Root cause
The issue was traced to the sendUnauthorizedPage() flow inside document.parser.class.inc.php, which sent an explicit HTTP/1.1 401 Unauthorized header. Opera cached that state and handled the next requests inconsistently.
Original patch
$this->sendForward($unauthorizedPage,'HTTP/1.1 401 Unauthorized');
was changed to:
$this->sendForward($unauthorizedPage);
Additional note
The original article also recommended setting liHomeId dynamically when wrapping WebLoginPE in a helper snippet, so successful login redirects returned the user to the correct protected page instead of the generic unauthorized page.
It is an old browser-specific issue, but the debugging pattern is timeless: when auth flows behave inconsistently, inspect both redirects and response headers before you blame the login snippet itself.
Using the Cirkuit TinyMCE Skin in Evolution CMS
An extras-style note about bringing the Revolution default TinyMCE skin into Evolution CMS for a more polished editing experience.
Building a Simple Multilingual Switcher Snippet in Evolution CMS
A classic multilingual snippet pattern for projects that need language switching in Evolution CMS without moving to a heavier framework or rewriting the whole site.