debug inscription/* and homonyms
authorRaphael Marichez <falco@m4x.org>
Sun, 19 Dec 2004 19:41:53 +0000 (19:41 +0000)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Thu, 26 Jun 2008 21:26:45 +0000 (23:26 +0200)
- few sql syntax error
- alias "prenom.nom.NN" wasn't added in "aliases" in case of an homonym : usage of mailorg.
- in en_cours, uid is not an integer !
- prefer future bestalias rather than forlife in the processus of pre-registering

git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-113

htdocs/inscription/maj.php
htdocs/inscription/step3.php
htdocs/inscription/step4.php
include/identification.inc.php
include/select_user.inc.php
templates/inscription/step2.tpl
templates/mails/inscrire.mail.tpl

index 49a9212..3ae7d72 100644 (file)
@@ -22,7 +22,7 @@
 require_once("xorg.inc.php");
 
 if (Env::has('n')) {
-    $sql    = "SELECT * FROM envoidirect WHERE uid=".Env::getInt('n');
+    $sql    = "SELECT * FROM envoidirect WHERE uid='".Env::get('n')."'";
     $result = $globals->db->query($sql);
     if ($ligne  = mysql_fetch_assoc($result)) {
 
@@ -57,7 +57,7 @@ if (Env::has('n')) {
         $page->assign('prenom',   $prenom);
         $page->assign('nom',      $nom);
 
-        $page->assign('envoidirect', Env::getInt('n'));
+        $page->assign('envoidirect', Env::get('n'));
         $page->run();
     }
 }
index 8a1d787..d666a01 100644 (file)
@@ -23,7 +23,6 @@ require_once("xorg.inc.php");
 new_skinned_page('inscription/step3.tpl', AUTH_PUBLIC);
 require_once("identification.inc.php");
 
-$page->assign('mailorg', $mailorg);
 $page->assign('forlife', $forlife);
 
 if (!isvalid_email(Env::get('email'))) {
@@ -44,7 +43,7 @@ if($page->nb_errs()) {
     $page->changeTpl('inscription/step2.tpl');
     require_once("applis.func.inc.php");
     $page->assign('homonyme', $homonyme);
-    $page->assign('loginbis', isset($loginbis) ? $loginbis : '');
+    $page->assign('mailorg', $mailorg);
     
     $page->assign('prenom', $prenom);
     $page->assign('nom', $nom);
@@ -57,8 +56,6 @@ $pass_clair = rand_pass();
 $password   = md5($pass_clair);
 $date       = date("Y-m-j");
 
-if (!isset($loginbis)) $loginbis="";
-
 $birth = sprintf("%s-%s-%s", substr(Env::get('naissance'),4,4),
         substr(Env::get('naissance'),2,2), substr(Env::get('naissance'),0,2));
 
@@ -69,23 +66,25 @@ $sql="REPLACE INTO  en_cours
                    naissance='$birth', date='$date', nationalite='".Env::get('nationalite')."',
                     appli_id1='".Env::get('appli_id1')."', appli_type1='".Env::get('appli_type1')."',
                     appli_id2='".Env::get('appli_id2')."', appli_type2='".Env::get('appli_type2')."',
-                    loginbis='$mailorg', username='$forlife'";
+                    loginbis='$mailorg', username='$forlife', homonyme='$homonyme'";
 $globals->db->query($sql);
 
 $globals->db->query("UPDATE auth_user_md5 SET last_known_email='".Env::get('email')."' WHERE matricule = $matricule");
 // si on venait de la page maj.php, on met a jour la table envoidirect
 if (Env::has('envoidirect')) {
-    $globals->db->query("UPDATE envoidirect SET date_succes=NOW() WHERE uid=".Env::getInt('envoidirect'));
+  if (Env::get('envoidirect')) {
+    $globals->db->query("UPDATE envoidirect SET date_succes=NOW() WHERE uid='".Env::get('envoidirect')."'");
+  }
 }
 
 require_once('xorg.mailer.inc.php');
 $mymail = new XOrgMailer('inscrire.mail.tpl');
-$mymail->assign('forlife', $forlife);
+$mymail->assign('mailorg', $mailorg);
 $mymail->assign('lemail', Env::get('email'));
 $mymail->assign('pass_clair', $pass_clair);
 $mymail->assign('baseurl', $globals->baseurl);
 $mymail->assign('ins_id', $ins_id);
-$mymail->assign('subj', $forlife."@polytechnique.org");
+$mymail->assign('subj', $mailorg."@polytechnique.org");
 $mymail->send();
 
 $page->run();
index 8dc0103..4f08d2a 100644 (file)
@@ -26,16 +26,16 @@ require_once("user.func.inc.php");
 require_once('xorg.mailer.inc.php');
 
 if (Env::has('ref')) {
-    $sql = "SELECT  username,loginbis,matricule,promo,password,
+    $sql = "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::getInt('ref');
+             FROM  en_cours WHERE ins_id='".Env::get('ref')."'";
     $res = $globals->db->query($sql);
 }
 
-//vérifions que la référence de l'utilisateur est 
-if (!Env::has('ref')) ||
-        !list( $forlife, $alias, $matricule, $promo, $password, $nom, $prenom,$nationalite, 
+// 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>
@@ -63,7 +63,7 @@ if (mysql_num_rows($res))  {
 
 $nom = stripslashes($nom);
 $prenom = stripslashes($prenom);
-$sql = "UPDATE auth_user_md5 SET password='$password', nationalite=$nationalite, perms='user',
+$sql = "UPDATE auth_user_md5 SET password='$password', nationalite='$nationalite', perms='user',
         date='$date', naissance='$naissance', date_ins = NULL WHERE matricule='$matricule'";
 $globals->db->query($sql);
 $sql = "REPLACE INTO  auth_user_quick (user_id)
@@ -90,12 +90,17 @@ if ((list($uid) = mysql_fetch_row($resbis)) === false) {
 
 $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$forlife','a_vie')");
 if($alias) {
+    // Les alias supplémentaires sont prenom.nom.NN et, si pas d'homonymie, prenom.nom.NN
     $p2 = sprintf("%02u",($promo%100));
+    // Vérification d'homonymie
+    if(!$homonyme) {
+      // si homonyme, on a déjà calculé l'unique alias possible : prenom.nom.NN, qui se trouve dans $alias
+      $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$alias.$p2','alias')");
+    }
     $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$alias','alias')");
-    $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$alias.$p2','alias')");
 }
 
-// on cree un objet logger et on log l'
+// on cree un objet logger et on log l'inscription
 $logger = new DiogenesCoreLogger($uid);
 $logger->log("inscription",$email);
 
@@ -134,7 +139,7 @@ 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->db->query("insert into user_changes ($uid)");
+$globals->db->query("insert into user_changes values ($uid)");
 
 // envoi du mail à l'inscrit
 $mymail = new XOrgMailer('inscription.reussie.tpl');
index bbb20ba..c9287e3 100644 (file)
@@ -176,6 +176,8 @@ $result = $globals->db->query("SELECT id,type,expire FROM aliases WHERE alias='$
 $homonyme = mysql_num_rows($result) > 0;
 
 if ( $homonyme ) {
+    $newbestalias = $mailorg . "." . sprintf("%02u",($promo%100));
+    
     list($h_id,$h_type,$expire) = mysql_fetch_row($result);
     mysql_free_result($result);
 
@@ -197,18 +199,23 @@ if ( $homonyme ) {
        $mailer->addCc('"Support Polytechnique.org" <support@polytechnique.org>');
        $msg =
            "Un homonyme s'est inscrit, nous ne pouvons donc garder ton alias '$mailorg'.\n\n".
-           "Tu gardes tout de même l'usage de cet alias pour 1 mois encore à compter de ce jour.\n\n".
+           "Tu gardes tout de même l'usage de cet alias pour un mois encore à compter de ce jour.\n\n".
            "Lorsque cet alias sera désactivé, l'adresse :\n".
            "    $mailorg@polytechnique.org\n".
            "renverra vers un robot qui indique qu'il y a plusieurs personnes portant le même nom ; cela évite que l'un des homonymes reçoive des courriels destinés à l'autre.\n\n".
-           "Cordialement\n\n".
+           "Pour te connecter au site, tu pourras utiliser comme 'login' soit ton adresse à vie '$forlife', ".
+           "soit l'alias '$newbestalias'. Par ailleurs, commence dès aujourd'hui à communiquer à tes correspondants ".
+           "ton adresse :\n".
+           "    $newbestalias@polytechnique.org\n\n".
+           "En nous excusant pour le désagrément occasionné,\n".
+           "cordialement\n\n".
            "-- \n".
-           "Polytechnique.org\n".
+           "L'équipe de Polytechnique.org\n".
            "\"Le portail des élèves & anciens élèves de l'X\"";
        $mailer->SetTxtBody(wordwrap($msg,72));
        $mailer->send();
     }
-    unset($mailorg);
+    $mailorg = $newbestalias;
 }
 
 ?>
index 6ce6e3c..67459af 100644 (file)
@@ -36,7 +36,7 @@ if (!Env::has("xmat") || !Env::has("submit")) {
        $chaine2 = strtok(" -'");
         $chaine  = ( strlen($chaine2) > strlen($chaine1) ) ? $chaine2 : $chaine1;
 
-        $rq = strlen(Env::get("promoR")==4 ? "AND promo=".Env::getInt("promoR") : "");
+        $rq = strlen(Env::get("promoR"))==4 ? "AND promo=".Env::getInt("promoR") : "";
 
        $where = "prenom LIKE '%$prenom%' AND nom LIKE '%$chaine%' $rq ORDER BY promo,nom";
     }
index 4c64b2a..087ee5a 100644 (file)
@@ -30,7 +30,9 @@
 <form action="{"inscription/step3.php"|url}" method="post">
   {if $homonyme}
   <p>
-  Ton adresse sera : <strong>{$forlife}@polytechnique.org</strong>
+  Tu as déjà un homonyme inscrit dans notre base de données mais dans une autre promotion, nous allons
+  donc te donner l'adresse <strong>{$mailorg}@polytechnique.org</strong>, en plus
+  de ton adresse à vie <strong>{$forlife}@polytechnique.org</strong>.
   </p>
   {else}
   <p>
@@ -46,7 +48,7 @@
   Elle pointera sur les e-mails de ton choix, indique-s-en un pour commencer
   (tu pourras indiquer les autres une fois l'inscription terminée).
   Attention, il doit <strong>impérativement être correct</strong> pour que nous puissions 
-  te recontacter.
+  t'envoyer ton mot de passe.
   </p>
   <table class="bicol" cellpadding="3" cellspacing="0" summary="Préinscription">
     <tr>
index a5c06ee..22c0415 100644 (file)
@@ -28,7 +28,7 @@ Ton inscription sur Polytechnique.org est presque termin
 
 Après activation, tes paramètres seront :
 
-login        : {$forlife}
+login        : {$mailorg}
 mot de passe : {$pass_clair}
 
 Rends-toi sur la page web suivante afin d'activer ta pré-inscription, et de changer ton mot de passe en quelque chose de plus facile à mémoriser :