Development

#5268 ([PATCH] If REQUEST_METHOD=PUT, add x-www-form-urlencoded params to sfWebRequest's parameterHolder)

You must first sign up to be able to contribute.

Ticket #5268 (closed enhancement: fixed)

Opened 5 years ago

Last modified 4 years ago

[PATCH] If REQUEST_METHOD=PUT, add x-www-form-urlencoded params to sfWebRequest's parameterHolder

Reported by: joes Assigned to: fabien
Priority: minor Milestone: 1.3.0 alpha1
Component: other Version: 1.2.0
Keywords: request Cc:
Qualification: Unreviewed

Description

PHP does not automatically parse x-www-form-urlencoded params originating from PUT requests. Therefore, I suggest that symfony should parse x-www-form-urlencoded params originating from PUT-requests and add them to sfRequest's parameterHolder and to sfWebRequest's postParameters.

  • a/lib/vendors/symfony/lib/request/sfWebRequest.class.php

    old new  
    6464    $this->parameterHolder->add($this->getParameters); 
    6565 
    6666    // POST parameters 
    67     $this->postParameters = get_magic_quotes_gpc() ? sfToolkit::stripslashesDeep($_POST) : $_POST; 
    68     $this->parameterHolder->add($this->postParameters); 
    69  
     67    $postParameters = $_POST; 
     68     
    7069    if (isset($_SERVER['REQUEST_METHOD'])) 
    7170    { 
    7271      switch ($_SERVER['REQUEST_METHOD']) 
     
    8180          break; 
    8281 
    8382        case 'PUT': 
     83          if ($_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded') 
     84          { 
     85            parse_str(file_get_contents("php://input"), $postParameters); 
     86          } 
    8487          $this->setMethod(self::PUT); 
    8588          break; 
    8689 
     
    101104      // set the default method 
    102105      $this->setMethod(self::GET); 
    103106    } 
     107     
     108    $this->postParameters = get_magic_quotes_gpc() ? sfToolkit::stripslashesDeep($postParameters) : $postParameters; 
     109    $this->parameterHolder->add($this->postParameters); 
    104110 
    105111    if (isset($this->options['formats'])) 
    106112    { 

Attachments

parse_form_encoded_params_for_method_put.patch (1.2 kB) - added by joes on 12/11/08 11:30:44.
Patch

Change History

12/11/08 11:30:44 changed by joes

  • attachment parse_form_encoded_params_for_method_put.patch added.

Patch

01/06/09 08:54:10 changed by fabien

  • milestone set to 1.3.0.

01/12/09 10:16:08 changed by dwhittle

See r14634 in dwhittle branch.

01/14/09 10:37:35 changed by dwhittle

  • status changed from new to closed.
  • resolution set to fixed.

(In [14699]) 1.3: added parsing of request content as put parameters (closes #5268, #4746)

09/26/09 14:42:14 changed by fabien

(In [22451]) [doc] [1.3] documented enhancements in REST support (refs #5676, #5268, #4746)

09/26/09 14:42:16 changed by fabien

(In [22452]) [1.3] fixed PUT and DELETE parameters (closes #5676, refs #5268, #4746)