Drupal render form not rendering a form
You should not print individual children elements of the form array, but render it completely (with render($form)).

If you want to fine tune the markup inside the &lt;form&gt; tag, you need to alter the form (using hook_form_FORM_ID_alter()) or provide a custom theme used for the form (i.e. in hook_theme() returns an items with the form ID as key).