je parle du module membre, j'ai repris ce formulaire pour les inscriptions:
Code :
<row>
   <div class="aside">
      <?php
$action = io::request('action', array('create', 'check'));
$message = $error = $lastname = $firstname = $email = $login = $pass1 = $pass2 = $spam = '';
if ($action == 'create') {
   $spam = io::request('name');
   $login = io::request('login');
   $pass1 = io::request('pass1', 'sensitiveIO::isValidPassword');
   $pass2 = io::request('pass2', 'sensitiveIO::isValidPassword');
   $lastname = io::request('lastname');
   $firstname= io::request('firstname');
   $email = io::request('email', 'io::isValidEmail');
   if ($spam) {
      $error .= 'Erreur : Le champ name ne doit pas être rempli (antispam) ...<br />';
   }
   if (!$login) {
      $error .= 'Erreur : L\'identifiant est obligatoire ...<br />';
   } elseif (CMS_profile_usersCatalog::loginExists($login, $cms_user)) {
      $error .= 'Erreur : Cet identifiant existe déjà ... Veuillez en choisir un autre.<br />';
   }
   if (!$pass1 || !$pass2) {
      $error .= 'Erreur : Les champs "Mot de passe" sont manquant ou incorrects ...<br />';
   } elseif ($pass1 != $pass2) {
      $error .= 'Erreur : Les champs "Mot de passe" sont différents ...<br />';
   }
   if (!$lastname) {
      $error .= 'Erreur : Le nom est obligatoire ...<br />';
   }
   if (!$email) {
      $error .= 'Erreur : L\'email est manquant ou invalide ...<br />';
   }
   if (!$error) {
      $user = new CMS_profile_user(); 
      $user->setLogin($login); 
      $user->setPassword($pass1); 
      $user->setLastName($lastname); 
      $user->setFirstName($firstname); 
      $user->setLanguage(new CMS_language('fr')); 
      $contactData = new CMS_contactData(); 
      $contactData->setEmail($email); 
      $user->setContactData($contactData);
      if ($user->writeToPersistence()) {
         // groupe des utilisateurs authentifiés
         $groupObject = CMS_profile_usersGroupsCatalog::getByID(AUTHENTICATED_USERS_GROUP_ID); 
         $groupObject->addToUserAndWriteToPersistence($user);
         // groupe de tous les utilisateurs
         $groupObject = CMS_profile_usersGroupsCatalog::getByID(ALL_USERS_GROUP_ID); 
         $groupObject->addToUserAndWriteToPersistence($user);
         //inactive user
         $user->setActive(false);
         $user->writeToPersistence();
         //Création de la clé d'identification
         $key = base64_encode(io::generateKey(20).'_'.$user->getUserId() ^ ENCODING_KEY);
         //Création de l'email de confirmation
         $template = (is_file(PATH_MAIL_TEMPLATES_FS)) ? PATH_MAIL_TEMPLATES_FS : '';
         $mail = new CMS_email();
         $mail->setEmailFrom(APPLICATION_POSTMASTER_EMAIL);
         $mail->setFromName(APPLICATION_LABEL);
         $mail->setSubject('Validation de votre compte utilisateur', true);
         $mail->setEmailTo($email);
         $pageURL = CMS_tree::getPageValue('{{pageID}}', 'url');
         $body = 
            'Votre compte utilisateur sur le site <a href="http://www.genea-logique.fr">www.genea-logique.fr</a> a été créé avec succès.<br />
<br />'.
            'Pour finaliser votre inscription, merci de cliquer sur le lien ci dessous :<br />
<br />'.
            '<a href="'.$pageURL.'?action=check&key='.$key.'">» Activez votre compte</a>
<br />
<br />'.
            'Toute l\'équipe vous souhaite la Bienvenue dans la communauté Automne !<br />
<br />';
         $mail->setEmailHTML($body);
         $mail->setFooter('Cet email est généré automatiquement par Généa-logique concernant le site http://www.genea-logique.fr.'."\n".'Ne répondez pas directement à ce message.');
         $mail->setTemplate($template);
         $mail->sendEmail();
         $message = 'Votre compte a été créé. Un email vous a été envoyé pour valider votre inscription.';
      } else {
         $error .= 'Erreur lors de la création du compte, veuillez rééssayer ...<br />';
      }
   }
} elseif ($action == 'check') {
   $key = io::request('key');
   //Lecture de l'ID utilisateur à partir de la clé
   $key = base64_decode($key) ^ ENCODING_KEY;
   if( strpos($key,"_") !== false ) {
      @list( $generatedKey, $userId ) = explode( "_", $key );
   }
   if (io::isPositiveInteger($userId)) {
      $user = CMS_profile_usersCatalog::getByID($userId);
      if (!is_object($user) || $user->hasError() || $user->isActive()) {
         $error .= 'Erreur : Ce lien d\'activation est invalide ...<br />';
      } else {
         //Active user
         $user->setActive(true);
         $user->writeToPersistence();
         $message = 'Votre compte a été activé. Vous pouvez maintenant vous identifier à l\'aide du formulaire ci-dessus.';
      }
   } else {
      $error .= 'Erreur : Ce lien d\'activation est invalide ...<br />';
   }
}
//Create user form
$content = '';
if ($message) {
   $content .= '<h4>Créer votre compte :</h4>
<div class="cms_forms_msg">'.$message.'</div>';
} elseif ($action != 'check' && $cms_user->getUserId() == ANONYMOUS_PROFILEUSER_ID) {
   $content .= '<h4>Créer votre compte :</h4>
<p>Vous ne possédez pas encore de compte sur Genea-logique.fr ? Créez en un facilement à l\'aide du formulaire suivant.</p>';
   if ($error) {
      $content .= '<div class="cms_forms_error_msg">'.$error.'</div>';
   }
   $content .= '
<div class="cms_forms"> 
<a name="formAnchorCreate"></a>
<form action="/web/genea/12-inscription.php#formAnchorCreate" method="post" id="cms_forms_create"> 
<input type="hidden" name="action" value="create" /> 
<table width="100%" cellspacing="1" cellpadding="1" border="0" align="center"> 
<tbody> 
<tr>
<td style="text-align:right; width:30%;">
<label for="lastname">* Nom</label>
</td> 
<td>
<input type="text"   name="lastname" value="'.io::htmlspecialchars($lastname).'" />
</td> 
</tr> 
<tr>
<td   style="text-align:   right;">
<label for="firstname">Prénom</label>
</td> 
<td>
<input   type="text"   name="firstname" value="'.io::htmlspecialchars($firstname).'" />
</td> 
</tr> 
<tr>
<td   style="text-align:   right;">
<label for="email">* Email</label>
</td> 
<td>
<input   type="text"   name="email" value="'.io::htmlspecialchars($email).'" />
</td> 
</tr> 
<tr>
<td   style="text-align:   right;">
<label for="login">* Pseudo</label>
</td> 
<td>
<input   type="text"   name="login" value="'.io::htmlspecialchars($login).'" />
</td> 
</tr> 
<tr>
<td   style="text-align:   right;">
<label for="pass1">* Mot de passe</label>
</td> 
<td>
<input   type="password"   name="pass1" value="'.io::htmlspecialchars($pass1).'" />
</td> 
</tr> 
<tr>
<td   style="text-align:   right;">
<label for="pass2">* Confirme passe</label>
</td> 
<td>
<input   type="password"   name="pass2" value="'.io::htmlspecialchars($pass2).'" />
</td> 
</tr> 
<tr> 
<td style="text-align: right;"> </td> 
<td>
<input type="submit" value="Créer votre compte" name="submit" class="button" />
</td> 
</tr> 
</tbody> 
</table>
<span style="display:none;">
<input   type="text"   name="name"   value="'.io::htmlspecialchars($spam).'" />
</span>
</form>
</div>
<p>
Conformément à la loi informatique et liberté du 06.01.78 (article 34), vous disposez d\'un droit d\'accès, de modification, de rectification et de suppression des données vous concernant.
</p>';
} elseif ($action == 'check' && $error) {
   $content .= '<h4>Créer votre compte :</h4>';
   if ($error) {
      $content .= '<div class="cms_forms_error_msg">'.$error.'</div>';
   }
}
echo $content;
   ?>
</div>
</row>
quand je m'inscrit, je reçoit bien le mail de validation mais des le 1er clic, le lien est considéré comme invalide...
tu peux faire le test si tu veux: 
http://www.genea-logique.fr/web/genea/1 ... iption.php je supprimerais ensuite ton compte...
et j'ai ajouté ça dans le config:*
//key used to check user email (in profile creation)
define("ENCODING_KEY",'aze');
//Identifiant du groupe redacteurs
define('AUTHENTICATED_USERS_GROUP_ID', 1);
//Identifiant du groupe "Tout le monde"
define('ALL_USERS_GROUP_ID', 1);