Form handler submit don't work I have a submission handler for my custom form that doesn't work. I tried many solutions, but nothing works.

My_Custom.module

 [...]
function tournament_menu() {
    $items['tournament/newteam'] = array(
        'title' =&gt; 'Créer une nouvelle équipe',
        'page callback' =&gt; 'drupal_get_form',
        'page arguments' =&gt; array('form_newteam'),
        'access callback' =&gt; TRUE,
        'file' =&gt; 'form_tournament.inc',
    );    
}
 [...]


form_tournament.inc

function form_newteam ($form, &amp;$form_state) {

 [...]
    $form['submit'] = array(
        '#type' =&gt; 'submit',
        '#value' =&gt; 'Créer',
    );
    $form['actions']['submit']['#submit'][] = 'form_newteam_submit';

    return $form;
}

function form_newteam_validate($form, &amp;$form_state) {
    //Validation logic
}

function form_newteam_submit($form, &amp;$form_state) {

    drupal_set_message("Bla bla submit !");

}    


My validation function works.

I try all this code In form_newteam() function. 

$form['actions']['submit']['#submit'][] = 'form_newteam_submit';
$form['#submit'][] = 'form_newteam_submit';
$form['#submit'] = array('form_newteam_submit');
$form['submit'] = array(
 '#type' =&gt; 'submit',
 '#value' =&gt; 'Créer',
 '#submit' =&gt; array('form_newteam_submit'),
); 


$form['submit'] = array(
  '#type' =&gt; 'submit',
  '#value' =&gt; 'Créer',
  '#submit' =&gt; 'form_newteam_submit',
);
Go back and scrutinize your validation function. The code you are showing here actually works, so the problem is something you did not include in your sample.

For the reference, the working implementation over here is:

function form_newteam ($form, &amp;$form_state) {
    $form['submit'] = array(
        '#type' =&gt; 'submit',
        '#value' =&gt; 'Créer',
    );

    return $form;
}

function form_newteam_validate($form, &amp;$form_state) {
    drupal_set_message("valid");
}

function form_newteam_submit($form, &amp;$form_state) {
    drupal_set_message("submit");
}


Please note that your function names do not conform to the drupal coding standards. Function names must be prefixed with the module name. Therefore you should name your functions like this: tournament_newteam or tournament_newteam_form. If those are administrative forms, stick them into tournament.admin.inc otherwise place them into tournament.pages.inc.