nyeholt / silverstripe-cmis-connector

A CMIS based connector for the external content module
BSD 3-Clause "New" or "Revised" License
3 stars 0 forks source link

Webkit Pipe Decoding #1

Open jedgell opened 13 years ago

jedgell commented 13 years ago

Thanks for the great plugin, Marcus! Found an issue with Webkit browsers (Chrome and Safari) decoding the pipe in URLs incorrectly and not allowing users to browse repos from the front end. Hope his solution is helpful.

From my programmer buddy Briley at kiveo

Inability to browse in Webkit browsers is due to character decoding issue. In Webkit browsers, the vertical pipe in the ID parameter is not decoded correctly (encoded as %7C). In ExternalContentPage.php, wherever this is:

$object = ExternalContent::getDataObjectFor($request->param('ID'));

He changed it to this:

$id = str_replace('%7C', '|', $request->param('ID')); $object = ExternalContent::getDataObjectFor($id);

Thanks Briley & Marcus!

nyeholt commented 13 years ago

Hi, thanks for the report. What version webkit browser are you using, and what webserver you're running? I'm on Chrome 9.0 on Ubuntu, and even when I manually enter the URL in the address bar using the %7C syntax, it is automatically decoded once it comes through apache and hits PHP.

It sounds like it needs to be urldecoded before being used, but (at least, on my configuration) I'm not sure if it should be done in a platform independent way.

jedgell commented 13 years ago

Sorry 'bout that - missed an email, I'm sure. In any case, here are the vitals:

Chrome 9.0.597.102 on Mac Safari Version 5.0.3 (6533.19.4) Mac as well

Servers deets: Ubuntu 10.04.2 LTS kernel 2.6.32-28-server Server version: Apache/2.2.14 (Ubuntu) Server built: Nov 18 2010 21:19:09 PHP 5.3.2-1ubuntu4.7 with Suhosin-Patch (cli) (built: Jan 12 2011 18:36:55) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

CentOS release 5 (Final) Server version: Apache/2.2.16 (Unix) Server built: Aug 2 2010 10:38:07 Cpanel::Easy::Apache v3.2.0 rev5158 PHP 5.2.14 (cli) (built: Aug 2 2010 10:52:08) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies with the ionCube PHP Loader v3.3.20, Copyright (c) 2002-2010, by ionCube Ltd., and with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH

(Running php as mod_php on both using same ini for cli as mod_php) can provide inis, if they'd be of any help

jedgell commented 13 years ago

PS - Just a thought - it may be a peculiarity of Webkit on Mac - Firefox and Opera don't seem to have the same issue.