xdb->query( "SELECT m.uid, u.promo, u.nom, u.prenom, u.matricule FROM register_marketing AS m INNER JOIN auth_user_md5 AS u ON u.user_id = m.uid WHERE m.hash={?}", Env::get('hash')); if (list($uid, $promo, $nom, $prenom, $ourmat) = $res->fetchOneRow()) { $sub_state['uid'] = $uid; $sub_state['hash'] = Env::get('hash'); $sub_state['promo'] = $promo; $sub_state['nom'] = $nom; $sub_state['prenom'] = $prenom; $sub_state['ourmat'] = $ourmat; $globals->xdb->execute( "REPLACE INTO register_mstats (uid,sender,success) SELECT m.uid, m.sender, 0 FROM register_marketing AS m WHERE m.hash", $sub_state['hash']); } } switch ($sub_state['step']) { case 0: if (Post::has('step1')) { $sub_state['step'] = 1; if (isset($sub_state['hash'])) { $sub_state['step'] = 3; require_once('register.inc.php'); create_aliases($sub_state); } } break; case 1: if (Post::has('promo')) { $promo = Post::getInt('promo'); if ($promo < 1900 || $promo > date('Y')) { $err = "La promotion saisie est incorrecte !"; } else { $sub_state['step'] = 2; $sub_state['promo'] = $promo; if ($promo >= 1996 && $promo<2000) { $sub_state['mat'] = ($promo % 100)*10 . '???'; } elseif($promo >= 2000) { $sub_state['mat'] = 100 + ($promo % 100) . '???'; } } } break; case 2: if (count($_POST)) { require_once('register.inc.php'); $sub_state['prenom'] = Post::get('prenom'); $sub_state['nom'] = Post::get('nom'); $sub_state['mat'] = Post::get('mat'); $err = check_new_user($sub_state); if ($err !== true) { break; } $err = create_aliases($sub_state); if ($err === true) { unset($err); $sub_state['step'] = 3; } } break; case 3: if (count($_POST)) { require_once('register.inc.php'); if (!isvalid_email(Post::get('email'))) { $err[] = "Le champ 'E-mail' n'est pas valide."; } elseif (!isvalid_email_redirection(Post::get('email'))) { $err[] = $sub_state['forlife']." doit renvoyer vers un email existant ". "valide, en particulier, il ne peut pas être renvoyé vers lui-même."; } if (!preg_match('/^[0-3][0-9][01][0-9][12][90][0-9][0-9]$/', Post::get('naissance'))) { $err[] = "La 'Date de naissance' n'est pas correcte."; } if (isset($err)) { $err = join('
', $err); } else { $birth = Env::get('naissance'); $sub_state['naissance'] = sprintf("%s-%s-%s", substr($birth,4,4), substr($birth,2,2), substr($birth,0,2)); $sub_state['email'] = Post::get('email'); $sub_state['step'] = 4; finish_ins($sub_state); } } break; } $_SESSION['sub_state'] = $sub_state; new_simple_page('register/step'.intval($sub_state['step']).'.tpl', AUTH_PUBLIC); if (isset($err)) { $page->trig($err); } $page->run(); ?>