Drupal 7: Two submit buttons and custom field validation
I'd suggest using the #submit property

For example:

$form['actions']['submit'] = array(
 '#type' =&gt; 'submit', 
 '#value' =&gt; t('Sign Up')
);
$form['actions']['submit2'] = array(
  '#type' =&gt; 'submit', 
  '#value' =&gt; t('Sign Up &amp; Take Survey')
  '#submit' =&gt; array('custom_submit_for_this_button')
);


And then:

function your_form_name_submit($form, &amp;$form_state) {
  // your logic for first button here; this is auto-called by Drupal
}
function custom_submit_for_this_button($form, &amp;$form_state) {
  // your logic for second button here
}