Bug #51634 [Opn]: Can't post multiple fields with the same name

From: Date: Thu, 22 Apr 2010 13:53:32 +0000
Subject: Bug #51634 [Opn]: Can't post multiple fields with the same name
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-149788@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=51634&edit=1

 ID:               51634
 Updated by:       felipe@php.net
 Reported by:      bart at tremby dot net
 Summary:          Can't post multiple fields with the same name
 Status:           Open
 Type:             Bug
 Package:          cURL related
 Operating System: Ubuntu
 PHP Version:      5.2.13

 New Comment:

You can use: array("name[0]" => "val1", "name[1]" =>
"val2")


Previous Comments:
------------------------------------------------------------------------
[2010-04-22 15:07:56] bart at tremby dot net

Where I said 'PHP then parses this into an array but only "val2" is in
it.' I meant "Array", not "val2".

------------------------------------------------------------------------
[2010-04-22 15:06:01] bart at tremby dot net

Description:
------------
With CLI curl I can run
curl -F test=value -F test=value --trace-ascii trace
http://localhost/test.php
and in the file trace I see that it posted multipart/form-data with two
fields called "test" with content "value".

I need this same behaviour from PHP. But the only way at present, it
seems, to add form fields to the curl handle (and have them transmit as
multipart/form-data) is to use curl_setopt($ch, CURLOPT_POSTFIELDS,
$data) where $data is an array of name->value pairs.

Obviously I can't have two pairs in this array with the same name.

I've tried array("name" => array("val1", "val2")) but that
posts the
string "Array" as the value for field "name".

I've tried array("name[]" => array("val1", "val2")) but that
posts the
string "Array" as the value for field "name[]" (PHP then parses this
into an array but only "val2" is in it.)

I've tried array("name[]" => "val1", "name[]" =>
"val2") but of course
that doesn't work since as soon as that array is initialized it's only
got one element -- the second overwrote the first.

I think allowing array("name" => array("val1", "val2")) would be
the
best solution. (And brackets should not be added to the end of "name"
unless specified.)



------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=51634&edit=1


Thread (12 messages)

« previous php.bugs (#149788) next »