Passing array from a form to another
You need to use 'rebuild' property of forms here (used in multi-steps form) :

 function skillbar_form($form, &amp;$form_state) {
   if (!empty($form_state['storage']['myvalue'])) {
    drupal_set_message(t("You submitted: @name", array('@name' =&gt; $form_state['storage']['myvalue'])));
   }
   $form['skill1'] = array(
    '#type' =&gt; 'textfield',
    '#title' =&gt; t("What's your skill ?"),
    '#default_value' =&gt; variable_get('skill1'),
    '#description' =&gt; t("Enter your skill"),
   );
   $form['skill2'] = array(
    '#type' =&gt; 'textfield',
    '#title' =&gt; t("What's your second skill"),
    '#default_value' =&gt; variable_get('skill2'),
    '#description' =&gt; t('Enter your second skill'),
   );
   $form['submit_button'] = array(
    '#type' =&gt; 'submit',
    '#value' =&gt; t('Save'),
   );
   return $form;
  }

 function skillbar_form_submit($form, &amp;$form_state) {
  $form_state['rebuild'] = TRUE;
  $form_state['storage']['myvalue'] = $form_state['values']['skill1'];
  $form_state['redirect'] = ANY_URL;
 }