What is max_input_nesting_level?

Need help installing PHP, configuring a script, or configuring a server? Then come on in and post your questions! We'll try to help the best we can!

Moderator: General Moderators

Post Reply
Starcraftmazter
Forum Commoner
Posts: 45
Joined: Mon Apr 24, 2006 11:36 pm

What is max_input_nesting_level?

Post by Starcraftmazter »

Hello

Can anyone please explain to me what max_input_nesting_level is used for? The manual describes it as "Sets the max nesting depth of input variables (i.e. $_GET, $_POST..) ", but I don't understand this at all. I know what nesting depth is, and I know what input variables are, but what does it mean for variables to have nesting depth?

Thanks.
User avatar
Eran
DevNet Master
Posts: 3549
Joined: Fri Jan 18, 2008 12:36 am
Location: Israel, ME

Re: What is max_input_nesting_level?

Post by Eran »

You can pass arrays in GET and POST request parameters, by indicating the nesting in the parameter name. For example:

Code: Select all

<input name="foo[bar][bee][]" />  //Nested 3 levels deep
Starcraftmazter
Forum Commoner
Posts: 45
Joined: Mon Apr 24, 2006 11:36 pm

Re: What is max_input_nesting_level?

Post by Starcraftmazter »

Ahhh, ok thanks.
parisssss
Forum Newbie
Posts: 1
Joined: Tue Sep 04, 2012 7:32 am

Re: What is max_input_nesting_level?

Post by parisssss »

thanks!
clark551
Forum Commoner
Posts: 25
Joined: Mon Jul 01, 2013 1:49 pm

Re: What is max_input_nesting_level?

Post by clark551 »

I assume you know the basics about arrays and the superglobals $_POST and $_GET. If you don't know that, you don't need to understand what max_input_nesting_level is.

Nested arrays are arrays that contain other arrays. Imagine this piece of code:

$a = array();
$a["a"] = array();
$a["b"] = array();
$a["a"]["a"] = 1;
$a["a"]["b"] = 2;
$a["b"]["a"] = 3;
$a["b"]["b"] = 4;

$a is an array with two elements. Each one of these ($a["a"] and $a["b"]) is an array itself, with two elements inside each one. If you want to get the value of one of those, you have to specify the arrays-inside-arrays you want to access. For example, $a["b"]["a"] is 3.

Let's apply this to web input. Suppose you have this form:

<form action="" name="myform" method="post">
<input name="foo[bar][one]">
<input name="foo[bar][two]">
<input name="foo[baz][one]">
<input name="foo[baz][two]"> <!-- The names don't mean anything -->
<input type="submit">
</form>

As I explained previously, you have arrays inside arrays. If you want to get the value of the second input, you have to write $_POST["foo"]["bar"]["two"].

The nesting level is the times you have an array inside an array. The max_input_nesting_level setting says how many times you can put an array inside another in the GET or POST input.
Post Reply