save my work, it DOES NOT WORK ATM
authorPierre Habouzit (MadCoder <pierre.habouzit@m4x.org>
Mon, 10 Jan 2005 08:49:58 +0000 (08:49 +0000)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Thu, 26 Jun 2008 21:27:20 +0000 (23:27 +0200)
git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-256

bin/cron/clean.php
htdocs/inscription/step4.php
htdocs/register/end.php [new file with mode: 0644]
include/register.inc.php

index dfc8070..e6d780e 100755 (executable)
@@ -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");
index 09310ca..e205030 100644 (file)
  *  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("<p>Cette adresse n'existe pas, ou plus, sur le serveur.</p>
-                 <p>Causes probables :</p>
-                 <ol>
-                   <li>Vérifie que tu visites l'adresse du dernier e-mail reçu s'il y en a eu plusieurs.</li>
-                   <li>Tu as peut-être mal copié l'adresse reçue par mail, vérifie-la à la main.</li>
-                   <li>
-                   Tu as peut-être attendu trop longtemps pour confirmer.  Les
-                   pré-inscriptions sont annulées tous les 30 jours.
-                   </li>
-                </ol>");
-}
-
-$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() .  '<br />
-            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 à
-            <a href="mailto:webmestre@polytechnique.org">webmaster@polytechnique.org</a>');
-}
-// 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() .  '<br />
-            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 à
-            <a href="mailto:webmestre@polytechnique.org">webmaster@polytechnique.org</a>');
-}
-
-$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 (file)
index 0000000..721ab85
--- /dev/null
@@ -0,0 +1,115 @@
+<?
+/***************************************************************************
+ *  Copyright (C) 2003-2004 Polytechnique.org                              *
+ *  http://opensource.polytechnique.org/                                   *
+ *                                                                         *
+ *  This program is free software; you can redistribute it and/or modify   *
+ *  it under the terms of the GNU General Public License as published by   *
+ *  the Free Software Foundation; either version 2 of the License, or      *
+ *  (at your option) any later version.                                    *
+ *                                                                         *
+ *  This program is distributed in the hope that it will be useful,        *
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of         *
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
+ *  GNU General Public License for more details.                           *
+ *                                                                         *
+ *  You should have received a copy of the GNU General Public License      *
+ *  along with this program; if not, write to the Free Software            *
+ *  Foundation, Inc.,                                                      *
+ *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
+ ***************************************************************************/
+
+require_once('xorg.inc.php');
+new_skinned_page('register/end.tpl', AUTH_PUBLIC);
+require_once('user.func.inc.php');
+
+if (Env::has('hash')) {
+    $res = $globals->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("<p>Cette adresse n'existe pas, ou plus, sur le serveur.</p>
+                 <p>Causes probables :</p>
+                 <ol>
+                   <li>Vérifie que tu visites l'adresse du dernier e-mail reçu s'il y en a eu plusieurs.</li>
+                   <li>Tu as peut-être mal copié l'adresse reçue par mail, vérifie-la à la main.</li>
+                   <li>
+                   Tu as peut-être attendu trop longtemps pour confirmer.  Les
+                   pré-inscriptions sont annulées tous les 30 jours.
+                   </li>
+                   <li>
+                   Tu es en fait déjà inscrit.
+                   </li>
+                </ol>");
+}
+
+
+
+/***********************************************************/
+/****************** 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();
+?>
index 3b7bcd3..bb38292 100644 (file)
@@ -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) {