step4 debug is complete. ouch
authorx2000habouzit <x2000habouzit>
Mon, 6 Sep 2004 09:58:59 +0000 (09:58 +0000)
committerx2000habouzit <x2000habouzit>
Mon, 6 Sep 2004 09:58:59 +0000 (09:58 +0000)
was not that easy.

the problem of mailing lists remains

htdocs/inscription/step4.php [moved from htdocs/step4.php with 60% similarity]
include/email.classes.inc.php
include/identification.inc.php
templates/inscription/step4.tpl [moved from templates/step4.tpl with 90% similarity]
templates/mails/inscription.reussie.tpl

similarity index 60%
rename from htdocs/step4.php
rename to htdocs/inscription/step4.php
index 0649c6d..a32d4a2 100644 (file)
@@ -1,4 +1,4 @@
-<?php
+<?
 /***************************************************************************
  *  Copyright (C) 2003-2004 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *  Foundation, Inc.,                                                      *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************
-        $Id: step4.php,v 1.5 2004-09-01 20:56:26 x2000habouzit Exp $
+        $Id: step4.php,v 1.1 2004-09-06 09:58:59 x2000habouzit Exp $
  ***************************************************************************/
 
 require("auto.prepend.inc.php");
-new_skinned_page('step4.tpl', AUTH_PUBLIC);
+new_skinned_page('inscription/step4.tpl', AUTH_PUBLIC);
 
 require("inscription_listes_base.inc.php");
 require("inscription_forums_base.inc.php");
@@ -38,18 +38,17 @@ if (!empty($_REQUEST['ref'])) {
                ",appli_id1,appli_type1,appli_id2,appli_type2".
                " FROM en_cours WHERE ins_id='".$_REQUEST["ref"]."'";
     $res = $globals->db->query($sql);
-    //vérifions que la référence de l'utilisateur est valide
-    if (!list($username, $loginbis, $matricule, $promo, $password, $nom, $prenom,$nationalite, 
-    $email, $naissance,$date,$appli_id1,$appli_type1,$appli_id2,$appli_type2) = mysql_fetch_row($res)) {
+    //vérifions que la référence de l'utilisateur est 
+    if (!list($forlife, $alias, $matricule, $promo, $password, $nom, $prenom,$nationalite, 
+              $email, $naissance,$date,$appli_id1,$appli_type1,$appli_id2,$appli_type2) = mysql_fetch_row($res)) {
         $page->assign('error',ERROR_REF);
         $page->run();
     }
-    $page->assign('username',$username);
+    $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...
-    $sql = "SELECT user_id FROM auth_user_md5 where username='$username'";
-    $res = $globals->db->query($sql);      
+    $res = $globals->db->query("SELECT alias FROM aliases WHERE alias='$forlife'");
     if ( mysql_num_rows($res) != 0)  {
         $page->assign('error',ERROR_ALREADY_SUBSCRIBED);
         $page->run();
@@ -57,49 +56,38 @@ if (!empty($_REQUEST['ref'])) {
     
     $nom = stripslashes($nom);
     $prenom = stripslashes($prenom);
-    $sql = "INSERT INTO auth_user_md5 SET username='$username',loginbis='$loginbis',matricule='$matricule',promo=$promo,
-            password='$password',nom='".addslashes($nom)."',prenom='".addslashes($prenom)."',nationalite=$nationalite,
+    $sql = "INSERT INTO auth_user_md5 SET matricule='$matricule',promo=$promo, password='$password',
+           nom='".addslashes($nom)."',prenom='".addslashes($prenom)."',nationalite=$nationalite,
             date='$date',naissance=$naissance, date_ins = NULL";
     $globals->db->query($sql);
-
-    // on vérifie qu'il n'y a pas eu d'erreur
+    
+    // on vérifie qu'il n'y a pas eu d'
     if ($globals->db->err()) {
         $page->assign('error',ERROR_DB);
         $page->assign('error_db',$globals->db->error());
         $page->run();
     }
-    // ok, pas d'erreur, on continue
+    // ok, pas d'erreur, on 
     $uid=$globals->db->insert_id();
 
-    /* insertion des alias dans la table de courrier */
-    if (empty($loginbis)) {
-       $globals->db->query("INSERT INTO aliases VALUES ('$username', 'alias', $uid)");
-       // le suivant n'est pas formellement un login, mais c'est celui qu'on utilise
-       // lorsque l'on envoit des mails à la personne (prenom.nom.promo) afin qu'elle
-       // comprenne que c'est là sa vraie adresse à vie
-       $globals->db->query("INSERT INTO aliases VALUES ('$username.$promo', 'login', $uid)");
-       $globals->db->query("INSERT INTO aliases VALUES ('$username.".($promo%100)."', 'alias', $uid)");
-    } else {
-       $globals->db->query("INSERT INTO aliases VALUES ('$username', 'alias', $uid)");
-       // le suivant n'est pas formellement un login, mais c'est celui qu'on utilise
-       // lorsque l'on envoit des mails à la personne (prenom.nom.promo) afin qu'elle
-       // comprenne que c'est là sa vraie adresse à vie
-       $globals->db->query("INSERT INTO aliases VALUES ('$loginbis.$promo', 'login', $uid)");
-       $globals->db->query("INSERT INTO aliases VALUES ('$loginbis.".($promo%100)."', 'alias', $uid)");
+    $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$forlife','a_vie')");
+    if($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.".($promo%100)."','alias')");
     }
-       
 
-    // on cree un objet logger et on log l'evenement
+    // on cree un objet logger et on log l'
     $logger = new DiogenesCoreLogger($uid);
     $logger->log("inscription",$email);
 
     /****************** insertion de l'email dans la table emails ***/
-    require("mtic.inc.php");
-    $flags = 'filtre'.(check_mtic($email) ? ',mtic':'');
-    $sql = "insert into emails set uid = $uid, num = 0, email = '\"|maildrop /var/mail/.maildrop_filters/tag_spams $uid\"', flags = 'active'";
-    $globals->db->query($sql);
-    $sql = "insert into emails set uid = $uid, num = 1, email = '$email', flags = '$flags'";
-    $globals->db->query($sql);
+    require("email.classes.inc.php");
+    $redirect = new Redirect($uid);
+    $redirect->add_email($email);
+    $globals->db->query("INSERT INTO emails
+                                SET uid = $uid,
+                                     email = '\"|maildrop /var/mail/.maildrop_filters/tag_spams $uid\"',
+                                    flags = 'filter'");
     /****************** ajout des formations ****************/
     if (($appli_id1>0)&&($appli_type1))
         $globals->db->query("insert into applis_ins set uid=$uid,aid=$appli_id1,type='$appli_type1',ordre=0");
@@ -107,8 +95,10 @@ if (!empty($_REQUEST['ref'])) {
         $globals->db->query("insert into applis_ins set uid=$uid,aid=$appli_id2,type='$appli_type2',ordre=1");
     /****************** envoi d'un mail au démarcheur ***************/
     /* si la personne a été marketingnisée, alors on prévient son démarcheur */
-    $res = $globals->db->query("SELECT a.username,e.date_envoi FROM envoidirect as e INNER JOIN auth_user_md5 as a ON e.sender = a.user_id 
-                                WHERE e.matricule = '".$matricule."' GROUP BY a.username");
+    $res = $globals->db->query("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 = '".$forlife."'");
     while (list($sender_usern, $sender_date) = mysql_fetch_row($res)) {
         $mymail = new TplMailer('marketing.thanks.tpl');
         $mymail->assign('to', $sender_usern);
@@ -117,37 +107,39 @@ if (!empty($_REQUEST['ref'])) {
         $mymail->assign('promo',$promo);
         $mymail->send();
     }
-    
+   
+
     /****************** inscription à la liste promo ****************/
-    $inspromo = inscription_liste_promo($uid,$promo);
+//    $inspromo = inscription_liste_promo($uid,$promo);
     /****************** inscription à la newsletter  ****************/
-    $insnewsletter = inscription_newsletter($uid);
+//    $insnewsletter = inscription_newsletter($uid);
     /****************** inscription à la newsletter  ****************/
-    $insforumpromo = inscription_forum_promo($uid,$promo);
+//    $insforumpromo = inscription_forum_promo($uid,$promo);
     /****************** inscription à la newsletter  ****************/
-    $insforums = inscription_forums($uid);
+//    $insforums = inscription_forums($uid);
 
-    // effacer la pré-inscription devenue inscription
-    $globals->db->query("update en_cours set loginbis='INSCRIT' WHERE username='$username'");
+    // effacer la pré-inscription devenue 
+    $globals->db->query("update en_cours set loginbis='INSCRIT' WHERE username='$forlife'");
 
-    // insérer l'inscription dans la table des inscriptions confirmées
+    // insérer l'inscription dans la table des inscriptions confirmé
     $globals->db->query("INSERT INTO ins_confirmees SET id=$uid");
 
-    // insérer une ligne dans user_changes pour que les coordonnées complètes
-    // soient envoyées a l'AX
+    // insérer une ligne dans user_changes pour que les coordonnées complè
+    // soient envoyées a l'
     $globals->db->query("insert into user_changes ($uid)");
 
-    // envoi du mail à l'utilisateur
+    // envoi du mail à l'
     $mymail = new TplMailer('inscription.reussie.tpl');
-    $mymail->assign('username', $username);
+    $mymail->assign('forlife', $forlife);
     $mymail->assign('prenom', $prenom);
     $mymail->send();
 
-    // s'il est dans la table envoidirect, on le marque comme inscrit
+    // s'il est dans la table envoidirect, on le marque comme 
     $globals->db->query("update envoidirect set date_succes=NOW() where matricule = $matricule");
-}
-else
+    start_connexion($uid,false);
+else
     $page->assign('error',ERROR_REF);
 
 $page->assign('dev',(isset($site_dev) && $site_dev)?1:0);
 $page->run();
+?>
index 704c483..c6b994d 100644 (file)
@@ -18,7 +18,7 @@
  *  Foundation, Inc.,                                                      *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************
-        $Id: email.classes.inc.php,v 1.6 2004-09-04 20:47:50 x2000habouzit Exp $
+        $Id: email.classes.inc.php,v 1.7 2004-09-06 09:59:00 x2000habouzit Exp $
  ***************************************************************************/
 
 require_once("xorg.misc.inc.php");
@@ -98,6 +98,7 @@ class Redirect {
         $result = $globals->db->query("
            SELECT email, FIND_IN_SET('active',flags), rewrite, FIND_IN_SET('mtic',flags),panne
              FROM emails WHERE uid = $_uid AND NOT FIND_IN_SET('filter',flags)");
+       $this->emails=Array();
         while ($row = mysql_fetch_row($result)) {
            $this->emails[] = new Email($row);
         }
@@ -141,7 +142,8 @@ class Redirect {
             $mtic = 1;
         }
         $globals->db->query("REPLACE INTO emails (uid,email,flags) VALUES({$this->uid},'$email','$flags')");
-        $_SESSION['log']->log('email_add',$email.($this->uid!=$_SESSION['uid'] ? " (admin on {$this->uid})" : ""));
+       if(isset($_SESSION['log'])) // may be absent --> step4.php
+           $_SESSION['log']->log('email_add',$email.($this->uid!=$_SESSION['uid'] ? " (admin on {$this->uid})" : ""));
        foreach($this->emails as $mail) {
            if($mail->email == $email_stripped) return SUCCESS;
        }
index 660923d..3383196 100644 (file)
@@ -18,7 +18,7 @@
  *  Foundation, Inc.,                                                      *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************
-        $Id: identification.inc.php,v 1.6 2004-09-06 08:27:04 x2000habouzit Exp $
+        $Id: identification.inc.php,v 1.7 2004-09-06 09:59:00 x2000habouzit Exp $
  ***************************************************************************/
 
 require_once('xorg.misc.inc.php');
@@ -185,7 +185,7 @@ if ( $homonyme ) {
 
     if ( $h_type != 'homonyme' and empty($expire) ) {
        $globals->db->query("UPDATE aliases SET expire=ADD_DATE(NOW(),INTERVAL 1 MONTH) WHERE alias='$mailorg'");
-       $globals->db->query("REPLACE INTO homonymes SET (homonyme_id,user_id) VALUES ($h_id,$h_id)");
+       $globals->db->query("REPLACE INTO homonymes (homonyme_id,user_id) VALUES ($h_id,$h_id)");
        require_once('diogenes.mailer.inc.php');
        $mailer = new DiogenesMailer('Support Polytechnique.org <support@polytechnique.org>',
                                     "$mailorg@polytechnique.org",
similarity index 90%
rename from templates/step4.tpl
rename to templates/inscription/step4.tpl
index 6d6930b..6bcdd29 100644 (file)
  *  Foundation, Inc.,                                                      *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************
-        $Id: step4.tpl,v 1.4 2004-08-31 11:25:39 x2000habouzit Exp $
+        $Id: step4.tpl,v 1.1 2004-09-06 09:59:00 x2000habouzit Exp $
  ***************************************************************************}
 
 {dynamic}
-{if $error}
+{if !$error}
   <div class="rubrique">
     Dernière étape
   </div>
   <p>
     Tu as maintenant accès au site en utilisant les paramètres reçus par mail.
-    Les adresses électroniques <strong>{$username}@polytechnique.org</strong>
-    et <strong>{$username}@m4x.org</strong> sont déjà ouvertes, essaie-les !
+    Ton adresses électronique à vie <strong>{$forlife}@polytechnique.org</strong>
+    est déjà ouverte, essaie-la !
   </p>
   <p>
     Remarque: m4x.org est un domaine "discret" qui veut dire "mail for X" et
     qui comporte exactement les mêmes adresses que le domaine polytechnique.org.
   </p>
   <p>
-    <strong><a href="{if $dev eq 0}https://www.polytechnique.org/{/if}motdepassemd5.php">Clique ici pour changer ton mot de passe.</a></strong>
+  <strong><a href="{if $dev eq 0}https://www.polytechnique.org/motdepassemd5.php{else}{"motdepassemd5.php"|url}{/if}">Clique ici pour changer ton mot de passe.</a></strong>
   </p>
   <p>
     N'oublie pas : si tu perds ton mot de passe, nous n'avons aucun engagement, en
index 39dff42..3b8de22 100644 (file)
  *  Foundation, Inc.,                                                      *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************
-        $Id: inscription.reussie.tpl,v 1.2 2004-08-31 11:25:40 x2000habouzit Exp $
+        $Id: inscription.reussie.tpl,v 1.3 2004-09-06 09:59:00 x2000habouzit Exp $
  ***************************************************************************}
 
 {config_load file="mails.conf" section="inscription"}
 {from full=#from#}
-{to addr="$username@polytechnique.org"}
+{to addr="$forlife@polytechnique.org"}
 {subject text="Bienvenue parmi les X sur le web !"}
 
 {$prenom}, félicitations pour ton inscription :o))