I have no idea why my form submit only work if I put on screen values of $form argument.
If I add:
echo '<pre>';
print_r($form);
echo '</pre>'
to my submit function I am getting new 'page' with this data printed out, but when I uncomment this nothing seems to work, I see form page again.
function gate_check_form_submit($form, &$form_state) {
$post = $form['#post'];
// echo '<pre>';
// print_r($form);
// echo '</pre>';
echo '<pre>';
print_r($post); //gives nothing
echo '</pre>';
$day = intval($post['gate_day']);
$month = intval($post['gate_month']);
$year = intval($post['gate_year']);
$isRemember = isset($post['gate_remember_me']);
if ($day && $month && $year) {
$allowed_age = (int) variable_get('gate_minimal_age', 18);
$min_born_time = mktime(0, 0, 0, date("m"), date("d"), date("Y") - $allowed_age);
$born_time = mktime(0, 0, 0, $month, $day, $year);
echo '<pre>';
print_r($min_born_time);
echo '</pre>';
echo '<pre>';
print_r($born_time);
echo '</pre>';
if ($min_born_time >= $born_time) {
echo 'yes';
sess_write(GATE_SESSION_NAME, TRUE);
if ($isRemember) {
set_cookie(GATE_COOKIE_NAME, sha1($born_time + srand()), time()+60*60*24*7);
}
drupal_goto('/');
}
echo 'no';
}
}
echo "<pre>" . print_r($form,1) . "</pre>"
.sess_write()
to write data in the session; it's enough you use$_SESSION[]
.