(Why have "function checkit($submit_f_charter_hr)" instead of sarahk's "function checkit($varname)"? That's only going to cause confusion.)
Let's think about the problem for a bit:
The only reason why it wouldn't redirect at all is if it never gets to the bit that says "if this then redirect to here, else redirect to there".
That bit of code won't be reached if
($submit_f_charter_hr!='')
is false, in other words, if $submit_f_charter_hr is empty.
So maybe $submit_f_charter_hr is empty?
I take it that's the name of the submit button? If so, why isn't it treated the same as all the other form fields; i.e., as $_POST['submit_f_charter_hr']?
If you hadn't turned your error reporting down so low you might have been told about this.