01518: Page name UTF-8 characters lost when login page used while creating new page
Description:
Using an UTF-8 instance of PmWiki
All pages have an edit password set
The user is logged out from all permissions
Try to create a new page, say https://
example.nz/Test/TētahiWhārangi?action=edit
in the address bar
PmWiki shows https://
example.nz/Test/TētahiWhārangi?action=edit
in the address bar and prompts for the password
Enter the password and click on Login
PmWiki shows https://
example.nz/Test/T?hiWh?rangi?action=edit
in the address bar
The UTF-8 characters have been lost
PmWiki displays "Editing Test.T
" on the page
PS note for some reason the browser changed the pasted URL characters copied from the address bar to "https://example.nz/Test/T%c4%93hiWh%c4%81rangi?action=edit". The page name is "TētahiWhārangi
""
You can add this early to config.php: --Petko
# fix for international URLs on IIS if (!empty($_SERVER['UNENCODED_URL'])) { $_SERVER['REQUEST_URI'] = $_SERVER['UNENCODED_URL']; } elseif (!empty($_SERVER['HTTP_X_ORIGINAL_URL'])) { $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL']; } elseif (!empty($_SERVER['ORIG_PATH_INFO'])) { $_SERVER['REQUEST_URI'] = $_SERVER['ORIG_PATH_INFO'] . (!empty($_SERVER['QUERY_STRING']) ? '?' . $_SERVER['QUERY_STRING'] : ''); }
closed, this fixed the issue thanks, should it be in the core?
I'm not comfortable automatically overwriting $_SERVER
variables, I prefer this to only be enabled by an admin when it is safe. Unfortunately many recipes use $_SERVER['REQUEST_URI']
directly. This could be documented on the Cookbook pages about IIS. --Petko