ID:               745
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Analyzed
 Bug Type:         Scripting Engine problem
 Operating System: *
 PHP Version:      4.3.0-dev
 New Comment:

Given raw post data of: foo%5B123%5D.x=5&foo%5B123%5D.y=10

I disagree with having the script engine turn that into:
[foo] => Array ( 
  [123] => Array (
    [x] => 5
    [y] => 10
  )    
) 
as this would break backward compatability (though I doubt many scripts
are using this to be honest).

There are two sensical solution that pop into my head:
#1)
[foo] => Array ( 
  [123]   => 10    // For BC
  [123.x] => 5
  [123.y] => 10
) 

>From an engine stand point all this says is "if the ] is not at the end
of the varname, move it there."

However, I don't like this idea either.  While it makes the data
accessable without breaking anything, it's just plain ugly.

#2)
[foo] => Array ( 
  [123]   => 10    // For BC
) 
[foo_x] => Array ( 
  [123]   => 5
) 
[foo_y] => Array ( 
  [123]   => 10
) 

>From an engine stand point all this says is "if there is a [] block
which is not at the end of the varname, make one copy of the var with
the end truncated, then move the [] block to the end and export that
varname as well."
i.e.: foo[123]bar => foo[123] && foobar[123]

And come to that it would want to include cases where there is non []
text between [] blocks:
i.e.: foo[123]bar[456] => foo[123][456] && foobar[123][456]
or possibly...
foo[123]bar[456] => foo[123][456] && foo[123][bar][456]

I can get behind this approach... At least in principal... But I don't
believe in its need enough to work on it unless it gets a several +1s. 
It also has the disadvantage of allowing scripters to get used to
naming their form elements incorrectly. (Not that the image example is
incorrect, per se, but it's a special case as the browser modifies the
name beyond the control of the designer).


Previous Comments:
------------------------------------------------------------------------

[2002-07-01 08:49:43] [EMAIL PROTECTED]

Raw post data and resulting variables:

foo%5B123%5D.x=5&foo%5B123%5D.y=10
Array ( [foo] => Array ( [123] => 10 ) ) 


bar%5B%5D.x=5&bar%5B%5D.y=10
Array ( [bar] => Array ( [0] => 5 [1] => 10 ) )


foobar.x=5&foobar.y=10
Array ( [foobar_x] => 5 [foobar_y] => 10 ) 

Not very consistent..



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

[2002-01-14 05:57:40] [EMAIL PROTECTED]

what a load of wank

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

[2001-12-12 15:02:08] [EMAIL PROTECTED]

Personally, I would rather avoid adding configuration 
directives for something as small as this! :)


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

[2001-12-12 14:45:10] [EMAIL PROTECTED]

i'd like to have $whatever[...][...][x] and $whatever[...][...][y] in
all cases, maybe 
with ini switches for old, new or both ...

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

[2001-12-12 14:33:25] [EMAIL PROTECTED]

Maybe we should just make $foo_x[123] and $foo_y[123] 
available in addition to $foo[123]? That should keep BC 
and still do things right, though we might want to change 
the value of $foo[123] to something like 'x,y' instead of 
just y???



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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/745

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

Reply via email to