too long

I haven't used CodeIgniter in nearly a year and I seem to have forgotten a lot of the fundamentals.

I am trying to retrieve the post variables from a form and pass them into a model which inserts them into mysql.

The controller function my form submits to looks like this:

public function validation() {
    $this->load->helper("form");
    $this->load->model("contact_form");
    $data = array(
        "name"          => $this->input->post("name"),
        ... etc. etc. ....           
    );
    if ($this->contact_form->new_form($data)) {
        $this->load->view("header");
        $this->load->view("submitted");
    } else echo "Sorry, there was a problem adding the form to the database.";   
}

The form in the view is structured like so:

<? echo form_open("form/validation");?>
<div id="one" style="display: block;">
<h1>A Heading</h1>
<p>Some Text</p>
<p class="bold">Name: <input type="text" name="name" class="single" value="<?php echo set_value('name'); ?>"></p>
<p class="bold">Email: <input type="text" name="email" class="single" value="<?php echo set_value('email'); ?>"></p>
<p class="bold">And then some radio buttons</p>
<p> yes <input type="radio" name="registered" value="yes"> no <input type="radio" name="registered" value="no"></p>
<p class="bold">And a textarea...</p>
<textarea name="description" class="fill" value="<?php echo set_value('description'); ?>"></textarea>
<a href="#" onclick="show('two'); hide('one')" class="right big">next</a>
</div>
<div id="two" style="display:none;">
<h1>Another Heading...</h1>
<p class="bold">And some more textareas</p>
<textarea name="audience" class="fill"></textarea>
... There are four divs in total with further textarea fields ...
<p class="bold"><input type="submit" name="submit" value="submit" class="center"></p>
<a href="#" onclick="show('three'); hide('four')" class="left big">back</a>
</div>
<? echo form_close();?>

And finally my model is very simple:

class contact_form extends CI_Model {    

  public function new_form($data) {

    $query = $this->db->insert("contact", $data);

    if ($query) {
        return true;
    } else return false;
  }
}

The form processes without any errors, but the data just appears as 0's in MySQL. If at any point I attempt to output the value of $_POST it returns BOOL (false), or with $this->input->post('something'); it returns NULL.

You will notice that no actual validation takes place. Initially I was using $this->form_validation->run() and getting the same results. I thought perhaps I was having trouble with the validation so I stripped it out and now I'm fairly certain my problem is that I'm not passing the $_POST variables correctly.

Can anyone explain why I am failing so hard?

I have now resolved this problem.

For some reason <? echo form_open("form/validation");?> was implementing GET and not POST. Replacing that line with <form method="post" accept-charset="utf-8" action="form/validation"/> resolved the issue.

According to the CodeIgniter documentation, by default, form_open should use POST - I have no idea why in my case it decided to use GET.