Correct me if I'm wrong, but 'index' means index in an array. Since $_POST, $_GET are basically global arrays in PHP, and arrays consist of 'indexes' or 'keys' or 'elements' but I believe the most common term for it is 'index'.A typical array may look like this: arrayExample[0] = 'Hello'; In this case, index 0 holds/has the value 'Hello'; ArrayExample[1] = 'world'; here index 1 has/holds the value 'world'; etc etc. Arrays always start from 0, not 1. For the $_POST global array, this is known as a 'associative array', meaning, instead of the index being a number, it will have a label/name to it. For example: $_POST['myName'], in this case, the index here is 'myName' but instead of being a number like 0, it has a label/name to it called 'myName' and it has/holds a value of someone's name when someone enters their name into the input field in the form: <input type="text" name="myName" />. You can then do this: $firstName = $_POST['myName']; The value in $_POST['myName'] will be set to/stored into $firstName. In your HTML form, make sure to name the 'name' attribute for the input field. Example: <input type="text" name="myName" /> Highlighted in red is the 'name' attribute. When you process the form with PHP, in other to receive the value in $_POST that came from the form's input field with the name attribute of "myName", you have to make sure the name attribute matches with the index of the $_POST array. Remember that $_POST is an associative array, so in this case it will be $_POST['myName']; If they don't match, for example <input type="text" name="fname" /> and in PHP you have this: $_POST['myName']; you'll get the 'undefined index' error message. "fname" and 'myName' don't match. Whatever the user types into here: <input type="text" name="myName" />You retrieve the value in PHP like this: $firstName = $_POST['myName']; Hope this helped.