Parse PUT data
Reported by Luiz Alberto Zaiats | January 27th, 2009 @ 11:03 PM | in 0.11.1
When you send data in POST like: user[name]=myname&user[pass]=mypass, the corresponding data is interpreted correcly:
[post] => Array
(
[user] => Array
(
[name] => myname
[pass] => mypass
)
)
But, when my form sends the same content as PUT, the data is interpreted as: [put] => Array
(
[cliente[name]] => myname
[cliente[pass]] => mypass
)
So, i've changed the file 'lib/recess/http/Environment.class.php', method getPutParameters from:
private static function getPutParameters() {
$putdata = file_get_contents('php://input');
return QueryString::parse($putdata);
}
to:
private static function getPutParameters() {
$putdata = file_get_contents('php://input');
// FIX: Parse PUT data correctly as POST does ;)
mb_parse_str($putdata, $outputdata);
return $outputdata;
}
Please Kris, check if i am correct!
LZ
Comments and changes to this ticket
-
Kris Jordan February 4th, 2009 @ 05:38 PM
- State changed from new to open
This does indeed look correct. Great find and thanks for a fix. My only concern is for folks without the mb extension installed. Will look into a solution for those without the multibyte string extension turned on.
-
Kris Jordan February 16th, 2009 @ 03:49 PM
- State changed from open to resolved
Thank-you for the suggested changes! This has been added into Recess Edge on GitHub with the changes suggested (actual code below).
$putdata = file_get_contents('php://input'); if(function_exists('mb_parse_str')) { mb_parse_str($putdata, $outputdata); } else { parse_str($putdata, $outputdata); }
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป
The Recess PHP Framework is an open source, full stack, RESTful PHP framework.
http://www.recessframework.org/