From 57589b675441e45ed8a5507cd22aac142688fb83 Mon Sep 17 00:00:00 2001 From: "Pierre Habouzit (MadCoder" Date: Mon, 10 Jan 2005 08:49:58 +0000 Subject: [PATCH] save my work, it DOES NOT WORK ATM git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-256 --- bin/cron/clean.php | 5 +- htdocs/inscription/step4.php | 132 +------------------------------------------ htdocs/register/end.php | 115 +++++++++++++++++++++++++++++++++++++ include/register.inc.php | 5 +- 4 files changed, 120 insertions(+), 137 deletions(-) create mode 100644 htdocs/register/end.php diff --git a/bin/cron/clean.php b/bin/cron/clean.php index dfc8070..e6d780e 100755 --- a/bin/cron/clean.php +++ b/bin/cron/clean.php @@ -34,9 +34,8 @@ function query ($sql) { $eight_days_ago = date("YmdHis",mktime() - 8*24*60*60); query("DELETE FROM watch_ops WHERE known<$eight_days_ago"); -// la table en_cours est nettoyée -query("DELETE FROM en_cours WHERE TO_DAYS(NOW()) - TO_DAYS(date) >= 365"); -query("delete from en_cours where loginbis = 'INSCRIT'"); +query("DELETE FROM register_pending WHERE TO_DAYS(NOW()) - TO_DAYS(date) >= 365"); +query("delete from register_pending WHERE hash = 'INSCRIT'"); // la table envoidirect est nettoyée query("update envoidirect set uid = CONCAT('+',uid) where uid not like '+%' and date_succes != 0"); diff --git a/htdocs/inscription/step4.php b/htdocs/inscription/step4.php index 09310ca..e205030 100644 --- a/htdocs/inscription/step4.php +++ b/htdocs/inscription/step4.php @@ -19,135 +19,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ -require_once("xorg.inc.php"); -new_skinned_page('inscription/step4.tpl', AUTH_PUBLIC); +require_once('xorg.inc.php'); +header('Location: ../register/end.php?hash='.Env::get('ref')); -require_once("user.func.inc.php"); -require_once('xorg.mailer.inc.php'); - -if (Env::has('ref')) { - $globals->xdb->execute( - "SELECT username,homonyme,loginbis,matricule,promo,password, - nom,prenom,nationalite,email,naissance,date, - appli_id1,appli_type1,appli_id2,appli_type2 - FROM en_cours WHERE ins_id={?}", Env::get('ref')); -} - -// vérifions que la référence de l'utilisateur est une référence existante dans "en_cours" -if ( !Env::has('ref') || - !list( $forlife, $homonyme, $alias, $matricule, $promo, $password, $nom, $prenom,$nationalite, - $email, $naissance,$date,$appli_id1,$appli_type1,$appli_id2,$appli_type2) = mysql_fetch_row($res)) -{ - $page->kill("

Cette adresse n'existe pas, ou plus, sur le serveur.

-

Causes probables :

-
    -
  1. Vérifie que tu visites l'adresse du dernier e-mail reçu s'il y en a eu plusieurs.
  2. -
  3. Tu as peut-être mal copié l'adresse reçue par mail, vérifie-la à la main.
  4. -
  5. - Tu as peut-être attendu trop longtemps pour confirmer. Les - pré-inscriptions sont annulées tous les 30 jours. -
  6. -
"); -} - -$page->assign('forlife',$forlife); - -// vérifions qu'il n'y a pas déjà une inscription dans le passé -// ce qui est courant car les double-clic... -$res = $globals->xdb->query('SELECT alias FROM aliases WHERE alias={?}', $forlife); -if ($res->numRows()) { - $page->kill("Tu es déjà inscrit à polytechnique.org. Tu as sûrement cliqué deux fois sur le même lien de - référence ou effectué un double clic. Consultes tes mails pour obtenir ton identifiant et ton - mot de passe."); -} - -$globals->xdb->execute('UPDATE auth_user_md5 - SET password={?}, nationalite={?}, perms='user', - date={?}, naissance={?}, date_ins = NULL - WHERE matricule={?}', $password, $nationalite, $date, $naissance, $matricule); -$globals->xdb->execute('REPLACE INTO auth_user_quick (user_id) SELECT user_id FROM auth_user_md5 WHERE matricule={?}', $matricule); - -// on vérifie qu'il n'y a pas eu d'erreur -if ($globals->db->err()) { - $page->kill($globals->db->error() . '
- Une erreur s\'est produite lors de la mise en place définitive de ton inscription, - essaie à nouveau, si cela ne fonctionne toujours pas, envoie un mail à - webmaster@polytechnique.org'); -} -// ok, pas d'erreur, on continue -$res = $globals->xdb->query('SELECT user_id FROM auth_user_md5 WHERE matricule={?}', $matricule); -$uid = $res->fetchOneCell(); -if (empty($uid)) { - $page->kill($globals->db->error() . '
- Une erreur s\'est produite lors de la mise en place définitive de ton inscription, - essaie à nouveau, si cela ne fonctionne toujours pas, envoie un mail à - webmaster@polytechnique.org'); -} - -$globals->xdb->execute('INSERT INTO aliases (id,alias,type) VALUES ({?}, {?}, "a_vie")', $uid, $forlife); -if($alias) { - // Les alias supplémentaires sont prenom.nom.NN et, si pas d'homonymie, prenom.nom - $p2 = sprintf("%02u",($promo%100)); - if(!$homonyme) { - $globals->xdb->execute('INSERT INTO aliases (id,alias,type) VALUES ({?}, {?}, "alias")', $uid, $alias); - } - $globals->xdb->execute('INSERT INTO aliases (id,alias,type) VALUES ({?}, {?}, "alias")', $uid, "$alias.$p2"); -} - -// on cree un objet logger et on log l'inscription -$logger = new DiogenesCoreLogger($uid); -$logger->log("inscription",$email); - -/****************** insertion de l'email dans la table emails + bogofilter ***/ -require_once("emails.inc.php"); -$redirect = new Redirect($uid); -$redirect->add_email($email); -fix_bestalias($uid); -/****************** ajout des formations ****************/ -if (($appli_id1>0)&&($appli_type1)) { - $globals->xdb->execute('INSERT INTO applis_ins SET uid={?},aid={?},type={?},ordre=0', $uid, $appli_id1, $appli_type1); -} -if (($appli_id2>0)&&($appli_type2)) { - $globals->xdb->execute('INSERT INTO applis_ins SET uid={?},aid={?},type={?},ordre=1', $uid, $appli_id2, $appli_type2); -} -/****************** envoi d'un mail au démarcheur ***************/ -/* si la personne a été marketingnisée, alors on prévient son démarcheur */ -$res = $globals->xdb->iterRow( - "SELECT DISTINCT a.alias,e.date_envoi - FROM envoidirect AS e - INNER JOIN aliases AS a ON ( a.id = e.sender AND a.type='a_vie' ) - WHERE e.matricule = {?}", $matricule); -while (list($sender_usern, $sender_date) = $res->next()) { - $mymail = new XOrgMailer('marketing.thanks.tpl'); - $mymail->assign('to', $sender_usern); - $mymail->assign('prenom', $prenom); - $mymail->assign('nom',$nom); - $mymail->assign('promo',$promo); - $mymail->send(); -} - -// effacer la pré-inscription devenue -$globals->xdb->execute('UPDATE en_cours SET loginbis="INSCRIT" WHERE username={?}', $forlife); - -// insérer l'inscription dans la table des notifications -require_once('notifs.inc.php'); -register_watch_op($uid,WATCH_INSCR); -inscription_notifs_base($uid); - -// insérer une ligne dans user_changes pour que les coordonnées complètes -// soient envoyées a l'AX -$globals->xdb->execute('insert into user_changes values ({?})', $uid); - -// envoi du mail à l'inscrit -$mymail = new XOrgMailer('inscription.reussie.tpl'); -$mymail->assign('forlife', $forlife); -$mymail->assign('prenom', $prenom); -$mymail->send(); - -// s'il est dans la table envoidirect, on le marque comme inscrit -$globals->xdb->execute('UPDATE envoidirect SET date_succes=NOW() WHERE matricule = {?}', $matricule); -$globals->hook->subscribe($forlife, $uid, $promo, $password, true); - -start_connexion($uid,false); -$page->run(); ?> diff --git a/htdocs/register/end.php b/htdocs/register/end.php new file mode 100644 index 0000000..721ab85 --- /dev/null +++ b/htdocs/register/end.php @@ -0,0 +1,115 @@ +xdb->execute( + "SELECT r.uid, r.forlife, r.bestalias, r.mailorg2, r.password, r.email, r.relance, r.naissance, + u.prenom, u.nom, u.promo + FROM register_pending AS r + INNER JOIN auth_user_md5 AS u ON r.uid = u.user_id + WHERE hash={?} AND hash!='INSCRIT'", Env::get('hash')); +} + +if ( !Env::has('ref') || + !list( $uid, $forlife, $bestalias, $mailorg2, $password, $email, $naissance, $nom, $prenom, $promo) = $res->fetchOneRow()) +{ + $page->kill("

Cette adresse n'existe pas, ou plus, sur le serveur.

+

Causes probables :

+
    +
  1. Vérifie que tu visites l'adresse du dernier e-mail reçu s'il y en a eu plusieurs.
  2. +
  3. Tu as peut-être mal copié l'adresse reçue par mail, vérifie-la à la main.
  4. +
  5. + Tu as peut-être attendu trop longtemps pour confirmer. Les + pré-inscriptions sont annulées tous les 30 jours. +
  6. +
  7. + Tu es en fait déjà inscrit. +
  8. +
"); +} + + + +/***********************************************************/ +/****************** REALLY CREATE ACCOUNT ******************/ +/***********************************************************/ + +$globals->xdb->execute('UPDATE auth_user_md5 + SET password={?}, perms="user", date=NOW(), naissance={?}, date_ins = NOW() + WHERE uid={?}', $password, $naissance, $uid); +$globals->xdb->execute('REPLACE INTO auth_user_quick (user_id) VALUES ({?})', $uid); +$globals->xdb->execute('INSERT INTO aliases (id,alias,type) VALUES ({?}, {?}, "a_vie")', $uid, $forlife); +$globals->xdb->execute('INSERT INTO aliases (id,alias,type,flags) VALUES ({?}, {?}, "alias", "bestalias")', $uid, $bestalias); +if ($mailorg2) { + $globals->xdb->execute('INSERT INTO aliases (id,alias,type) VALUES ({?}, {?}, "alias")', $uid, $mailorg2); +} +require_once('emails.inc.php'); +$redirect = new Redirect($uid); +$redirect->add_email($email); + +// on cree un objet logger et on log l'inscription +$logger = new DiogenesCoreLogger($uid); +$logger->log('inscription', $email); + +$globals->xdb->execute('UPDATE register_pending SET hash="INSCRIT" WHERE uid={?}', $uid); + +require_once('notifs.inc.php'); +register_watch_op($uid, WATCH_INSCR); +inscription_notifs_base($uid); + +$globals->hook->subscribe($forlife, $uid, $promo, $password); + +require_once('xorg.mailer.inc.php'); +$mymail = new XOrgMailer('inscription.reussie.tpl'); +$mymail->assign('forlife', $forlife); +$mymail->assign('prenom', $prenom); +$mymail->send(); + +start_connexion($uid,false); + +/***********************************************************/ +/************* envoi d'un mail au démarcheur ***************/ +/***********************************************************/ +$res = $globals->xdb->iterRow( + "SELECT DISTINCT a.alias,e.date_envoi + FROM envoidirect AS e + INNER JOIN aliases AS a ON ( a.id = e.sender AND a.type='a_vie' ) + WHERE e.matricule = {?}", $matricule); +while (list($sender_usern, $sender_date) = $res->next()) { + $mymail = new XOrgMailer('marketing.thanks.tpl'); + $mymail->assign('to', $sender_usern); + $mymail->assign('prenom', $prenom); + $mymail->assign('nom', $nom); + $mymail->assign('promo', $promo); + $mymail->send(); +} + +// s'il est dans la table envoidirect, on le marque comme inscrit +$globals->xdb->execute('UPDATE envoidirect SET date_succes=NOW() WHERE matricule = {?}', $matricule); + + +$page->assign('forlife',$forlife); +$page->run(); +?> diff --git a/include/register.inc.php b/include/register.inc.php index 3b7bcd3..bb38292 100644 --- a/include/register.inc.php +++ b/include/register.inc.php @@ -139,11 +139,8 @@ function create_aliases (&$sub) extract ($sub); $mailorg = make_username($prenom, $nom); - $mailorg2 = sprintf("%02u", ($promo%100)); + $mailorg2 = $mailorg.sprintf(".%02u", ($promo%100)); $forlife = make_forlife($prenom, $nom, $promo); - /*****************************************************************************/ - /***************************** IDENTIFICATION OK *****************************/ - /*****************************************************************************/ $res = $globals->xdb->query('SELECT COUNT(*) FROM aliases WHERE alias={?}', $forlife); if ($res->fetchOneCell() > 0) { -- 2.1.4