phparrayshttp-post-vars

PHP: Strange Array Problem - Where is my value?


I have an array ($form) which retreives some information from $_POST:

$form = $_POST['game'];

Now I want to work with the values in this array, but I somehow fail.

For debugging I used these commands (in the exact same order, with no extra lines inbetween):

print_r($form);
echo '#' . $form['System_ID'] . "#";

and as returned output I get:

Array
(
    ['Title'] => Empire: Total War - Special Forces
    ['Genre_ID'] => 1
    ['Type'] => Spiel
    ['System_ID'] => 1
)
##

Any ideas where my System_ID went? It's there in print_r, but not in the next line for echo?!?


Solution

  • Alright, I found the solution myself (a.k.a. d'oh!)

    I added another

    var_dump($form);
    

    for further analysis and this is what I got:

    array(4) {
      ["'Title'"]=>
      string(34) "Empire: Total War - Special Forces"
      ["'Genre_ID'"]=>
      string(1) "1"
      ["'Type'"]=>
      string(5) "Spiel"
      ["'System_ID'"]=>
      string(1) "1"
    }
    

    Notice the single quote inside the double quote?

    Looks as if you're not allowed to use the single quote in html forms or they will be included in the array key:

    Wrong: <input type="text" name="game['Title']" />
    Correct: <input type="text" name="game[Title]" />