File Manager Paging on Windows IIS = FAIL

Permalink
Line 30 of /concrete/elements/search_results_paging.php in c5 v5.2.1 reads:

$url = $script . Search::qsReplace($variables);

On a Linux install this returns:

/index.php/tools/required/al_search_results.php

On Windows running IIS this returns:

/index.php

Which stops the paging working entirely.

Any ideas?

Rich

 
tr309 replied on at Permalink Reply
Change line 5 of /concrete/elements/search_results_paging.php (v5.2.1) from:

$script = $_SERVER['PHP_SELF'];

To:

$script = (strstr($_SERVER['SERVER_SOFTWARE'], "IIS/6.0"))?($_SERVER['SCRIPT_NAME'].$_SERVER['PATH_INFO']):($_SERVER['PHP_SELF']);

It simply detects if the server is IIS6.0 and utilises $_SERVER['SCRIPT_NAME'].$_SERVER['PATH_INFO'] instead of $_SERVER['PHP_SELF']. $_SERVER['PHP_SELF'] obviously performs differently under IIS.

There may be other files in c5 that require the same fix but that should work for the File Manager at least.

Rich
ijessup replied on at Permalink Reply
ijessup
Is this also an issue with IIS7?
tr309 replied on at Permalink Reply
It could be - I don't have any IIS7 boxes to test with. If the problem persists with IIS7 you could probably just use the following instead:

$script = (strstr($_SERVER['SERVER_SOFTWARE'], "IIS"))?($_SERVER['SCRIPT_NAME'].$_SERVER['PATH_INFO']):($_SERVER['PHP_SELF']);

Let me know if a) there are problems with IIS7 and b) if the fix works.

Thanks,

Rich