logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
35 visiteur(s) et 0 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 108 400 929

  • Nb. de membres 8 693
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Bugs, Probs ... »» Date de connexion et suppression de compte

Nouveau sujet
 Date de connexion et suppression de compte#26292Répondre

5Contributeur(s)
DanyxJireckbartokjpbAnonyme
3 Modérateur(s)
developpeurjpbJireck
Danyx Danyxicon_post
NPDS Forum Extender
-: Problèmes :-
 
SujetDate de connexion et suppression de compte 
Votre Système d'Exploitation-: Windows Vista / 7  
Votre Package Web 
Votre version de PHP-: Je ne sais pas !  
Version NPDS (voir statistiques du site)-: REvolution 
Type de problème-: Administration  
Votre hébergeur-: Autre(s)  
Votre PrioritéUrgent  
Description du problèmeBonjour à tous.
Cela fait longtemps que je n'ai pas mis mon petit mot ici...
Mon problème est le suivant.
Je désir faire le ménage et supprimer les fiche des personnes n'étant pas venue depuis X temps, disons un an.
Je vois bien l'info de la date de connexion en "info bulle", mais comment faire de façon automatique et groupé?
Bonne soirée a tous. 
Inclure la signaturetrue 
notification par Emailtrue 
..::..
Danyx Danyxicon_post
Bien, voila une chose qui m’attriste!
J'ai connu ce site bien vivant, avec des réponses immédiates et une vrais entraide.
Je vois que mon problème du 30 mars n'a pas eu la moindre réponse, mais pire,il n'y a plus personne... :# :# :#
Amitié a tous
Jireck Jireckicon_post
Je ne l'avais pas vu cette question.

tu desire une liste des personnes non connecté depuis 1 an c'est cela .?
Danyx Danyxicon_post
Bonjour Jireck, heureux de te revoir...
Je désir faire de temps en temps un nettoyage, j'ai plus de 1700 membres mais je pense que certain ne reviennent plus et j'aimerais que le compteur corresponde à quelque chose.
Il faudrait donc que l'on puisse de tempes en temps supprimer les membres qui ne sont pas revenue depuis longtemps.
60 mois par exemple, ou 1 an peut importe mais que l'on puisse le faire régulièrement.
Mais je ne sais pas comment on peut faire en gardant bien sur leurs posts sur les forums ou les articles...
A bientôt

Dany
Jireck Jireckicon_post
le module ancien faisait cela mis mal ... je l'ai appris sur mes pauvres utilisateurs.
Il faut donc le revoir et le mettre a jour pour que le module soit pleinement fonctionnel.

Il envoyer des mails apres X mois sans connection et le compte etait supprimé apres XX mois...

Donc a voir Je pense..
Danyx Danyxicon_post
Je reprend ce post resté sans solution.
J'ai regardé dans la base de donné SQL, dans la ligne "user", nous avons une colonne "user_lastvisit" j'en déduis que c'est l'indication de la dernière visite du membre, mais la ce pose deux problémes.
Le premier est que l'indication n'est pas sous forme de date et je ne comprend pas le chiffre, par exemple il est indiqué sur mon compte;
1433827066, au lieu de 09 Juin 2015, cela ne me parle pas donc.
J'ai même des membres ou cette indication est vide!
Deuxième problème celui de faire une requette sql car je ne veux pas prendre de risque et je manque d'expérience dans ce domaine, qui c'est faire?

Message édité par : Danyx / 09-06-2015 08:19

Danyx Danyxicon_post
Une piste:
Peut être dans la base de donné, faire une requette du type:

Donc peut être faire un code du type:
DELETE FROM `cegema_hg`.`users` WHERE `users`.`user_lastvisit` < 1433827066

Votre avis sur ce type de requette?
Par contre reste deux problème, le signe < est il reconnu? Car la je demande toutes les dates inférieure au 9 Juin 2015.
Autre problème comment connaitre la référence d'une date précise?
Par exemple si je veux supprimer tout les membres n'étant pas venue depuis 6 mois, c'est quoi le code de la date disons au 31 Décembre 2014? :#
bartok bartokicon_post
bonjour,

user_lastvisit exploite la fonction php time()
(voir mainfile.php après la ligne 60).

time() calcule une date exprimée en secondes depuis le "big bang" d'Unix, soit le premier janvier 1970 à 0h00 GMT.

bon courage.
Danyx Danyxicon_post

calcule une date exprimée en secondes depuis le "big bang" d'Unix


Pouvez pas faire plus simple? :paf :paf :paf
Donc en résumé il y a deux solutions, soit ajouter une colonne date de visite, la je ne sais pas encore faire. Je vais me pencher sur ce problème mais si quelqu'un sait ce serait sympa.
Soit de noter le chiffre tout les début de mois ce qui donne un point de repaire.
Mais à l'époque de l'informatique il y a mieux!
Ainsi par exemple si 1333827066 représente le 31 Décembre 2015, on sait que tout les membres ayant un chiffre user_lastvisit plus petit ne sont pas venue aprés le 31 Décembre 2015.
Je me trompe ou pas?

Message édité par : Danyx / 09-06-2015 20:15

bartok bartokicon_post
pour la première partie de la question, "Pouvez pas faire plus simple?" ; "a l'époque de l'informatique il y a mieux..." je ne suis pas habilité à répondre car je ne suis qu'un humble utilisateur du CCMS, tout comme vous.

pour la seconde, le test d'infériorité sur le contenu de user_lastvisit est tout à fait possible et simple puisqu'il s'agit d'une valeur numérique entière. Pour mémoire, une année non bissextiile compte tout juste 31.536.000 secondes!

l'équipe de développement qui vient de s'étoffer devrait pouvoir vous en dire plus même si elle semble accaparée en ce moment par la continuité du développement, en particularité par l'adaptation aux nouvelles contraintes d'ergonomie.

A nouveau, bon courage.

Message édité par : bartok / 09-06-2015 13:48

Danyx Danyxicon_post
Heu non cela ne vas pas, dans ce champs je suis indiqué avec un chiffre de 1433827066, si je divise avec le tiens 31.536.000 cela voudrait dire que mon site existe depuis 45ans! hors il à 1ans1/2 d'existance!
bartok bartokicon_post
ce n'est pas de la date de création de votre site qu'il s'agit mais du 1er janvier 1970, soit effectivement 45 ans, 5 mois, 9 jours, 21 heures et 59 minutes (heure locale). je vous fais grâce des secondes: ça change tout le temps...
jpb jpbicon_post
en francais et juste pour la logique...

if(date courante -last visit)>(60*60*24*180) requete de suppression;
Danyx Danyxicon_post
jpb, je n'ai pas compris ce que je fais de ta requete.... :#
Jireck Jireckicon_post
Quelque chose comme ca




    $mai = "60";  // Jour Mail
    nb_del = "70" // Jour supp 

    $datei = "d-m-Y";
    $now = date($datei,time() + ($gmt*3600));

    ///////////////////
    //debut delestage//
    ///////////////////

        /*Requete liste membre*/
        $sql = sql_query("SELECT 
                u.uid, u.uname, u.email, u.user_lastvisit 
            FROM  
                ".$NPDS_Prefix."users u, 
                ".$NPDS_Prefix."users_status us 
            WHERE 
                us.uid = u.uid 
                AND u.uid != '1' 
                AND us.open = '1'");
        while (list($uid, $uname, $email, $user_lastvisit) = sql_fetch_row($sql))
        {

        $difference = time() - $user_lastvisit - ($gmt*3600);

        $jour = floor($difference/86400);

        /*Envoie mail d avertissement*/
        if ($mai == $jour - 1)
            {

                global $sitename;

                $reg = array("%pseudo%", "%site%");
                $bonne   = array("$uname", "$sitename");
                 $message = str_replace($reg, $bonne, $msg);

                $titre = aff_langue(stripslashes($titre));
                $message = aff_langue(stripslashes(utf8_decode($message)));

                $subject = "$titre $uname";
                send_email($email, $subject, $message, "", true, "html");

            }
            else if ($nb_del < $jour)
            {

                /*DEL table users++ REQUETE A FAIRE*/
                $query1 = "DELETE FROM ".$NPDS_Prefix."users  WHERE uid = $uid";
                

        }

    }



A verifier ....

Il y a surement des erreurs mais c'est un peu le chemin...
il faut arpenter maintenant
Anonyme Anonymeicon_post
Citation : Jireck 

Quelque chose comme ca




    $mai = "60";  // Jour Mail
    nb_del = "70" // Jour supp 

    $datei = "d-m-Y";
    $now = date($datei,time() + ($gmt*3600));

    ///////////////////
    //debut delestage//
    ///////////////////

        /*Requete liste membre*/
        $sql = sql_query("SELECT 
                u.uid, u.uname, u.email, u.user_lastvisit 
            FROM  
                ".$NPDS_Prefix."users u, 
                ".$NPDS_Prefix."users_status us 
            WHERE 
                us.uid = u.uid 
                AND u.uid != '1' 
                AND us.open = '1'");
        while (list($uid, $uname, $email, $user_lastvisit) = sql_fetch_row($sql))
        {

        $difference = time() - $user_lastvisit - ($gmt*3600);

        $jour = floor($difference/86400);

        /*Envoie mail d avertissement*/
        if ($mai == $jour - 1)
            {

                global $sitename;

                $reg = array("%pseudo%", "%site%");
                $bonne   = array("$uname", "$sitename");
                 $message = str_replace($reg, $bonne, $msg);

                $titre = aff_langue(stripslashes($titre));
                $message = aff_langue(stripslashes(utf8_decode($message)));

                $subject = "$titre $uname";
                send_email($email, $subject, $message, "", true, "html");

            }
            else if ($nb_del < $jour)
            {

                /*DEL table users++ REQUETE A FAIRE*/
                $query1 = "DELETE FROM ".$NPDS_Prefix."users  WHERE uid = $uid";
                

        }

    }



A verifier ....

Il y a surement des erreurs mais c'est un peu le chemin...
il faut arpenter maintenant
 


Bonjour,

Merci Jireck mais il faut faire quoi de ce code ?
:#

Anonyme Anonymeicon_post
Bonjour,

SVP.... Serait il possible d'avoir des explications sur comment utiliser le code ci-dessus ?

Merci
Jireck Jireckicon_post
il y a plusieurs facons d'implementer ce code ...

Ensuite la variable $mai permet d'envoyer un mmail apres X jours sans connection au utilisateur
et la variable nb_del (j'ai oublier le $ ) va supprimer le compte apres le nombre de jour sans connection

il peux etre copier coller dans modules/!include! fichier header_before.inc