Fork me on GitHub




(1) 2 3 »


Contrôleur mail - pré-inscription membre
Xoops accro
Inscrit: 16/08/2005 19:46
De Nanterre
Messages: 2331
Bonjour,
Au quotidien, j'ai pas mal de personne en attente de validation de leurs clés d'activations.
La raison est que les personnes ont saisies une mauvaise adresse email.
Il y a ceux qui le font intentionnellement, mais d'autres se trompent réellement.
Est il possible, dans les prochaines versions de trouver un système de vérification de validation email avant le fin de saisie de l'enregistrement, pour que l'utilisateur puisse la modifier.
C'est une idée, peux être que c'est déjà dit, je n'ai pas le temps de tout lire.
Bonne journée

Posté le : 06/10/2007 07:26

eparcyl... tranquille.
Partager Twitter Partagez cette article sur GG+
Re: Contrôleur mail - pré-inscription membre
Admin Frxoops
Inscrit: 04/02/2003 06:41
Messages: 799
il y a déjà une vérification qui prends en compte le principe d'une adresse mail.
si tu tapes toto.toto elle ne passe pas.
Par contre toto@toto.fr même si cette adresse est bidon est considérée comme OK car il y a bien "@" et le "." .

Bref juste virer les adresses mails dont les personnes n'ont pas validé leurs inscriptions.

Perso je gère cela depuis la page admin. Pour cela j'ai modifié le code de admin.php qui se trouve à la racine du site et j'ai ajouté après la ligne 70 ce codequi permet de voir les 10 derniers inscrits et les 10 derniers en attente. Bien utile pour virer les comptes qui sur mes sites sont supprimés au bout de 24H si pas activé et 30 jours si pas de posts. En effet pas mal d'internautes se servent juste de l'inscription pour faire un backlink de leurs sites

Le code:
//voir les membres enregistres
    
$sql "SELECT * FROM ".$xoopsDB->prefix("users")." WHERE level>0 ORDER BY uid DESC";
    
$result $xoopsDB->query($sql,10,0); // les 10 derniers
    
echo "<table width='100%' class='outer' cellpadding='4' cellspacing='1'><tr><th colspan='6'>"._AD_LASTTENUSERS."</th></tr>
    <tr align='center' class='head'><td>"
._AD_NICKNAME."</td><td>"._AD_EMAIL."</td><td>"._AD_REGISTERED."</td><td>"._AD_ACTION."</td></tr>n";
    
$ucount 0;
    while ( 
$myrow $xoopsDB->fetchArray($result) ) {
        if (
$ucount != 0) {
            
$class 'odd';
        } else {
            
$class 'even';
        }
        
$ucount++;
        
$myuser = new XoopsUser($myrow);
        echo 
"<tr class='$class'><td><a href='userinfo.php?uid=".$myuser->getVar("uid")."' target='_blank'>".$myuser->getVar("uname")."</a></td><td><a href='mailto:".$myuser->getVar("email")."'>".$myuser->getVar("email")."</a></td><td align='center'>".formatTimestamp($myuser->getVar("user_regdate"))."</td><td align='right'><a href='modules/system/admin.php?fct=users&amp;op=modifyUser&amp;uid=".$myuser->getVar("uid")."'>"._AD_EDIT."</a>&nbsp;<a href='modules/system/admin.php?fct=users&amp;op=delUser&amp;uid=".$myuser->getVar("uid")."'>"._AD_DELETE."</a></td></tr>n";
    }
    echo 
"</table><br/><br/>";
    
//membres non validés
    
$sql "SELECT * FROM ".$xoopsDB->prefix("users")." WHERE level=0 ORDER BY uid DESC";
    
$result $xoopsDB->query($sql,10,0); //les 10 derniers
    
echo "<table width='100%' class='outer' cellpadding='4' cellspacing='1'><tr><th colspan='6'>Les 10 derniers membres en attente</th></tr>
    <tr align='center' class='head'><td>"
._AD_NICKNAME."</td><td>"._AD_EMAIL."</td><td>"._AD_REGISTERED."</td><td>"._AD_ACTION."</td></tr>n";
    
$ucount 0;
    while ( 
$myrow $xoopsDB->fetchArray($result) ) {
        if (
$ucount != 0) {
            
$class 'odd';
        } else {
            
$class 'even';
        }
        
$ucount++;
        
$myuser = new XoopsUser($myrow);
        echo 
"<tr class='$class'><td><a href='userinfo.php?uid=".$myuser->getVar("uid")."' target='_blank'>".$myuser->getVar("uname")."</a></td><td><a href='mailto:".$myuser->getVar("email")."'>".$myuser->getVar("email")."</a></td><td align='center'>".formatTimestamp($myuser->getVar("user_regdate"))."</td><td align='right'><a href='modules/system/admin.php?fct=users&amp;op=modifyUser&amp;uid=".$myuser->getVar("uid")."'>"._AD_EDIT."</a>&nbsp;<a href='modules/system/admin.php?fct=users&amp;op=delUser&amp;uid=".$myuser->getVar("uid")."'>"._AD_DELETE."</a></td></tr>n";
    }
    echo 
"</table><br/><br/>";


Bon c'est un peu du à l'arrache mais c'est fonctionnel

Posté le : 12/10/2007 07:22

Quand tu montres la lune du doigt, l'imbécile regarde le doigt.
Infos sur TSO et tutos PC sur Tutoriaux PC
Partager Twitter Partagez cette article sur GG+
Re: Contrôleur mail - pré-inscription membre
Régulier
Inscrit: 20/01/2007 23:21
Messages: 112
j ai ce bout de code qui permet de verifier si le domaine existe vraiement par contre savoir si la boite elle sur le domaine existe pour l instant j ai pas ca en stock
class verification_email 
  var 
$system_OS "linux";//système d'exploitation (win/linux) 
  
var $debug 0;// textes de mise au point 
  
var $check_result;  // résultats 

  
function teste_email($email) { 
    
$email strtolower($email); 
    
// --- vérification de la syntaxe 
    
$ok $this->check_email($email); 
    if (!
$ok) return FALSE
    
// --- decomposition de l'adresse 
    
list($userName$hostName) = split("@"$email); 
    
// --- on teste l'enregistrement MX 
    
if (!$this->checkDNS($hostName)) { 
      
$this->check_result .= "Pas d'enregistrement MX"
      return 
FALSE
    } 
    else { 
      
$this->check_result .= "Enregistrement MX OK"
      return 
TRUE
    } 
  } 

  
// --- vérification de la syntaxe de l'adresse email 
  
function check_email($email) { 
    if (
preg_match('/^[-!#$%&'*+\./0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+.)+([0-9A-Z]){2,4}$/i', $email)) { 
      
$this->check_result .= "Syntaxe OK"; 
      return TRUE; 
    } 
    else { 
      
$this->check_result .= "Erreur de syntaxe"; 
      return FALSE; 
    } 
  } 

  // vérifie si l'enregistrement MX existe pour le domaine 
  function checkDNS(
$hostName) { 
    // --- linux 
    if (
$this->system_OS == "linux") { 
      if (checkdnsrr(
$hostName,"MX")) return TRUE; 
      else return FALSE; 
    } 
    // --- windows 
    else { 
      if(!empty(
$hostName)) { 
        exec("nslookup -type=MX ".
$hostName$result); 
        // vérifie chaque ligne  pour voir si l'une d'entre elles 
        // commence par le nom de domaine 
        // si c'est le cas, la vérification est positive 
        // sinon, c'est qu'il n'y a pas d'enregistrement 
        // MX pour le domaine 
        foreach (
$result as $line) { 
          if(eregi("^".
$hostName,$line)) return true; 
        } 
        return false; 
      } 
      return false; 
    } 
  } 
}

Posté le : 12/10/2007 08:03

Laissez pousser votre imagination.
http://www.overmysoul.com

Modules Pour xoops
http://xoops.overmysoul.com
Partager Twitter Partagez cette article sur GG+
Re: Contrôleur mail - pré-inscription membre
Xoops accro
Inscrit: 25/02/2004 00:20
De Région parisienne
Messages: 2526
il faudrait allé un peu plus loin et vérifier si l'utilisateur (toto) existe bien sur le serveur de mail

Posté le : 12/10/2007 09:05
Partager Twitter Partagez cette article sur GG+
Re: Contrôleur mail - pré-inscription membre
Régulier
Inscrit: 20/01/2007 23:21
Messages: 112
assez difficile a part mettre en code direct telnet, ou simuler un faux envoi de mail et reussir a decrypter les codes derriere de retour du smtp

Posté le : 12/10/2007 09:14

Laissez pousser votre imagination.
http://www.overmysoul.com

Modules Pour xoops
http://xoops.overmysoul.com
Partager Twitter Partagez cette article sur GG+
Re: Contrôleur mail - pré-inscription membre
Aspirant
Inscrit: 10/04/2007 08:19
De Paris
Messages: 61
Citation :

overmysoul a écrit:
j ai ce bout de code qui permet de verifier si le domaine existe vraiement par contre savoir si la boite elle sur le domaine existe pour l instant j ai pas ca en stock
class verification_email 
  var 
$system_OS "linux";//système d'exploitation (win/linux) 
  
var $debug 0;// textes de mise au point 
  
var $check_result;  // résultats 

  
function teste_email($email) { 
    
$email strtolower($email); 
    
// --- vérification de la syntaxe 
    
$ok $this->check_email($email); 
    if (!
$ok) return FALSE
    
// --- decomposition de l'adresse 
    
list($userName$hostName) = split("@"$email); 
    
// --- on teste l'enregistrement MX 
    
if (!$this->checkDNS($hostName)) { 
      
$this->check_result .= "Pas d'enregistrement MX"
      return 
FALSE
    } 
    else { 
      
$this->check_result .= "Enregistrement MX OK"
      return 
TRUE
    } 
  } 

  
// --- vérification de la syntaxe de l'adresse email 
  
function check_email($email) { 
    if (
preg_match('/^[-!#$%&'*+\./0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+.)+([0-9A-Z]){2,4}$/i', $email)) { 
      
$this->check_result .= "Syntaxe OK"; 
      return TRUE; 
    } 
    else { 
      
$this->check_result .= "Erreur de syntaxe"; 
      return FALSE; 
    } 
  } 

  // vérifie si l'enregistrement MX existe pour le domaine 
  function checkDNS(
$hostName) { 
    // --- linux 
    if (
$this->system_OS == "linux") { 
      if (checkdnsrr(
$hostName,"MX")) return TRUE; 
      else return FALSE; 
    } 
    // --- windows 
    else { 
      if(!empty(
$hostName)) { 
        exec("nslookup -type=MX ".
$hostName$result); 
        // vérifie chaque ligne  pour voir si l'une d'entre elles 
        // commence par le nom de domaine 
        // si c'est le cas, la vérification est positive 
        // sinon, c'est qu'il n'y a pas d'enregistrement 
        // MX pour le domaine 
        foreach (
$result as $line) { 
          if(eregi("^".
$hostName,$line)) return true; 
        } 
        return false; 
      } 
      return false; 
    } 
  } 
}



Et ce code on doit l'intégrer ou ?

Posté le : 12/10/2007 11:29
Partager Twitter Partagez cette article sur GG+
Re: Contrôleur mail - pré-inscription membre
Xoops accro
Inscrit: 25/02/2004 00:20
De Région parisienne
Messages: 2526
je ne pense pas qu'il s'agisse d'intégré ce code ou un autre dans un fichier php de Xoops.
Mais plutôt de réfléchir à la manière d'intégrer la vérification d'email dans xoops

Posté le : 12/10/2007 11:35
Partager Twitter Partagez cette article sur GG+
Re: Contrôleur mail - pré-inscription membre
Aspirant
Inscrit: 10/04/2007 08:19
De Paris
Messages: 61
Désolé, je pensais que cela était déja fonctionne via un hack sur xoop. Donc en cours d'étude et de réalisation si j'ai bien compris ?

Posté le : 12/10/2007 13:28
Partager Twitter Partagez cette article sur GG+
Re: Contrôleur mail - pré-inscription membre
Régulier
Inscrit: 20/01/2007 23:21
Messages: 112
je pense que ca peut etre mis en hack c une simple fonction a mettre avant l insertion d inof dans la bdd
mais c sur que ca serait mieux que l on mette cette classe dans le noyau afin que ts les modules puissent l utiliser

Posté le : 12/10/2007 14:32

Laissez pousser votre imagination.
http://www.overmysoul.com

Modules Pour xoops
http://xoops.overmysoul.com
Partager Twitter Partagez cette article sur GG+
Re: Contrôleur mail - pré-inscription membre
Newbie
Inscrit: 28/08/2007 18:02
Messages: 6
Citation :

DuGris a écrit :
il faudrait allé un peu plus loin et vérifier si l'utilisateur (toto) existe bien sur le serveur de mail

ca marche pas sur la plupart des serveurs (désactiver par le serveur)

Posté le : 12/10/2007 18:05
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
(1) 2 3 »




Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

21 Personne(s) en ligne (7 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 21 | Plus ...