Vikram's Web Archive

Icon

Since interestingness isn't a search option…

Fixed: “The URI you submitted has disallowed characters.” error CodeIgniter | DavidMichaelThompson

I started up a development project today after upgrading to snow leopard, and none of the codeigniter links worked. they all said “The URI you submitted has disallowed characters.” Why? This hadnt happened before, same project what changed?

Snow leopard upgraded my php dev environment to 5.3 from 5.2.6 And a few things have changed since then. Namely php bug #47229 “preg_quote should escape “-” (minus) as well” was fixed. (technically in 5.2.8) CodeIgniter checks uri for allowed characters to prevent some bad things. But the use preg_quote to convert the allowed list of character to something usable in a regular expression. Now the minus “-”, or I’d call it a dash (but I know there is a longer character for that) gets escaped in preg_quote with a backslash “\”. That cause the expression “a-z 0-9? to be converted to “a\-z 0\-9? which will not work in a regex.

Note we removed the preg_quote().  Now in your system/application/config/config.php file  look for line 126 (unless you’ve added a lot to you config will be around there somewhere)

Change the line

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_-';

to:

$config['permitted_uri_chars'] = 'a-z 0-9~%\.\:_\-';

we’re now preparing our allowed character string in the config file and skipping preg_quote.  And that’s it.  Now your uri should work

via Fixed: “The URI you submitted has disallowed characters.” error CodeIgniter | DavidMichaelThompson.

Category: Blogging, Tech Tips

Tagged:

Comments are closed.

Translate

 

Library

Speaker for the Dead
To Kill a Mockingbird
Leviathan Wakes
Caliban's War
Hyperion
Revelation Space
Ender's Game
Dune
On Basilisk Station
Old Man's War
Shards of Honour
The Warrior's Apprentice
The Fall of Hyperion
The Rise of Endymion
Endymion