Créée le, 19/06/2015

 Mise à jour le, 19/05/2019

Visiteurs N°  




Accueil
Nouveau Blog Nouveautés Moteur de Recherche Votre Caddie Pour Vos Achats Votre Espace Membre Vos Signets et Vos Jeux Préférés Page de Bienvenue Statique Site en Français Site en Anglais
Sommaires
Électronique Fondamentale Technologie Fondamentale Testez vos Connaissances Électronique Théorique Digitale Électronique Pratique Digitale Lexique Électronique Numérique Data book TTL Data book CMOS Dépannage TVC Mathématique
Micro-ordinateurs
Théorique des Micro-ordinateurs Testez vos Connaissances Pratique des Micro-ordinateurs Glossaires sur les Ordinateurs
Physique
La lumière Champ d'action Rayonnement Électromagnétique
Technologies
Classification des Résistances Identification des Résistances Classification des Condensateurs Identification des Condensateurs
Formulaires Mathématiques
Géométrie Physique 1. - Électronique 1. 2. - Électronique 1. 3. - Électrotechnique 1. 4. - Électromagnétisme
Accès à tous nos Produits
E. T. F. - Tome I - 257 Pages E. T. F. - Tome II - 451 Pages E. T. F. - Tome III - 611 Pages E. T. D. - Tome I - 610 Pages N. B. M. - Tome I - 201 Pages E. T. M. - Tome I - 554 Pages Business à Domicile Ouvrages 34 pages gratuits Nos E-books Logiciel Géométrie Logiciel Composants Électroniques
Aperçu de tous nos Produits
E. T. F. - Tome I - 257 Pages E. T. F. - Tome II - 451 Pages E. T. F. - Tome III - 611 Pages E. T. D. - Tome I - 610 Pages E. T. M. - Tome I - 554 Pages Logiciel Géométrie Logiciel Composants Électroniques
Nos Leçons aux Formats PDF
Électronique Fondamentale Technologie Fondamentale Électronique Théorique Digitale Électronique Pratique Digitale Théorique des Micro-ordinateurs Mathématiques
Informatique
Dépannage Win98 et WinXP et autres Dépannage PC Glossaire HTML et Programmes PHP et Programmes JavaScript (en cours de travaux) Création de plusieurs Sites
Forums
Forum Électronique et Infos Forum Électronique et Poésie
Divers et autres
Formulaire des pages perso News XML Statistiques CountUs Éditeur JavaScript Nos Partenaires et nos Liens Utiles Gestionnaire de Partenariat Nos Partenaires MyCircle Sondages 1er Livre d'Or 2ème livre d'Or

Signets :
  Leçons suivantes        Leçons précédentes     Bas de page
  Cliquez ici pour la leçon suivante ou dans le sommaire prévu à cet effet


Implémenter un gestionnaire de mailing lists (4ème partie) :



Implémentation des fonctions de l'utilisateur classique :


Les utilisateurs doivent pouvoir choisir parmi cinq options, après s'être loggé :

  regarder les listes disponibles pour s'y inscrire ;

  s'inscrire à une liste et annuler une inscription ;

  modifier la manière dont leurs comptes sont configurés ;

  modifier leurs mots de passe ;

  fermer leur session.

Vous retrouverez la plupart de ces options représentées à la figure 6 que nous reportons ci-après afin d'en faciliter la lecture. Nous allons maintenant nous intéresser à l'implémentation de chacune de ces options.

Veuillez cliquer sur l'image pour l'agrandir.

Ouverture_de_Session_Reussis_MLM.png (80728 octets)

Affichage des listes :

Nous allons implémenter un certain nombre d'options pour afficher les listes disponibles et leurs détails. Sur la figure 6, vous pouvez voir deux de ces options : Montrer Mes Listes, qui affiche les listes auxquelles l'utilisateur est inscrit, et Afficher Autres Listes, qui affiche les listes auxquelles l'utilisateur n'est pas inscrit.

Si vous revenez à la figure 4 en cliquant ici, vous constaterez qu'il existe une autre option, Afficher Les Listes, qui affiche toutes les listes du système. Pour que notre système soit plus simple à utiliser, il convient de limiter le nombre de résultats affichés sur chaque page (on peut choisir par exemple, 10 résultats par page). Nous n'avons pas encore implémenté cette fonctionnalité, pour des raisons de simplicité, néanmoins, on vous laisse le soin d'améliorer ce programme.

Ces trois options activent respectivement les actions show-my-lists, show-other-lists et show-all-lists. Comme vous l'avez probablement déjà remarqué, toutes ces actions fonctionnent de la même manière. Vous trouverez leur code ci-dessous :

    case "show-all-lists" :

    {

        $id = isset($_GET["id"]) ;

        $lists = get_all_lists($id) ;

        display_items("Affichent toutes les Listes du Système", get_all_lists(isset($_GET["id"])), "information", "show-archive", '') ;

        break ;

    }

        case "show-other-lists" :

    {

        display_items("Listes des Abonnés qui ne sont pas inscris", get_unsubscribed_lists(get_email()), "information", "show-archive", "subscribe") ;

        break ;

    }

        case '' :

        case "show-my-lists" :

    {

        display_items("Listes des Abonnés qui sont inscris", get_subscribed_lists(get_email()), "information", "show-archive", "unsubscribe") ;

        break ;

    }

Comme vous pouvez le constater, toutes ces actions appellent la fonction display_items() de output_fns.php, mais chaque fois avec des paramètres différents. Elles se servent également de la fonction get_email(), que nous avons déjà vue, pour récupérer l'adresse E-Mail de l'utilisateur.

La figure 7 montre à quoi sert cette fonction.


Listes_Utilisateur_est_pas_Abonne_du_MLM.png


Il s'agit de la page Show Other Lists.

Voyons maintenant le code de la fonction display_items(). Vous le trouverez au Listing 7.

Listing 7 : La fonction display_items() de output_fns.php - Cette fonction est utilisée pour afficher la liste des éléments avec les actions associées.


Cette fonction affiche un tableau d'éléments, chaque élément pouvant être associé au maximum à trois boutons d'action. Cette fonction accepte cinq paramètres :

  $title est le titre qui apparaît en haut du tableau. Dans le cas présenté à la figure 7, ce titre est Listes des Abonnés qui ne sont pas inscris, comme nous l'avons vu dans le code de l'action Show Other Lists.

  $list est un tableau d'éléments à afficher dans chaque ligne du tableau. Dans ce cas, il s'agit d'un tableau contenant les listes auxquelles l'utilisateur n'est pas inscrit, que nous construisons dans la fonction get_unsubscribed_lists(), sur laquelle nous reviendrons dans un instant. Il s'agit d'un tableau multidimensionnel, chaque ligne du tableau contenant jusqu'à quatre données sur chaque ligne.

  $list [n] [0] contient l'identificateur de l'élément, qui correspond généralement à un numéro de ligne. Cela fournit aux boutons d'action l'identificateur de la ligne sur laquelle ils doivent travailler. Dans notre cas, nous récupérons ces identificateurs dans la base de données.

  $list [n] [1] doit contenir le nom de l'élément. Il s'agit du texte affiché pour un élément particulier. Par exemple, dans le cas de la Figure 7, le nom de l'élément dans la première ligne du tableau est Effet Thermique du Courant.

  $list [n] [2] et $list [n] [3] sont optionnels. Nous nous en servons pour transporter les informations supplémentaires. Ils correspondent respectivement à du texte et à un identificateur. Nous verrons un exemple utilisant ces deux paramètres lorsque nous étudierons l'action View Mail dans le prochain chapitre "Implémentation des fonctions administratives".

Il est possible d'utiliser des mots clés comme indices dans le tableau.

Les paramètres 3, 4 et 5 de la fonction sont utilisés pour transmettre les trois actions qui seront affichées sur les boutons correspondants à chaque article. Sur la figure 7, il s'agit des trois boutons d'action Informations, Afficher l'archive et Abonnez-vous ?.

Nous récupérons ces trois boutons pour la page Show All Lists, en passant les noms des actions, information, show-archive et subscribe. En utilisant la fonction display_button(), ces actions sont transformées en boutons sous-titrés, et l'action appropriée leur est affectée.

Chacune des actions Show appelle la fonction display_items() d'une manière différente, comme vous pouvez le constater, en examinant leur code. Ces actions sont caractérisées non seulement par des boutons d'action et des titres différents, mais également par une fonction particulière pour construire le tableau des éléments à afficher. Show All Lists se sert de la fonction get_all_lists(), Show Other Lists de la fonction get_unsubscribed_lists(), et Show My Lists de la fonction get_subscribed_lists(). Toutes ces fonctions, ont une structure identique. vous les trouverez dans la bibliothèque de fonction Mailing_List_Manager_fns.php.

Nous allons maintenant nous intéresser concernant la fonction get_unsubscribed_lists(), puisqu'il s'agit de l'exemple dont nous nous sommes occupé jusqu'à maintenant. Vous trouverez le code de la fonction get_unsubscribed_lists() dans le Listing 8.


Listing 8 : La fonction get_unsubscribed_lists de Mailing_List_Manager_fns.php - Cette fonction est utilisée pour construire un tableau contenant les Mailing Lists auxquelles l'utilisateur n'est pas abonné.


Comme vous pouvez le constater, cette fonction nécessite une adresse E-Mail. Il doit s'agir de l'adresse E-Mail de l'utilisateur courant. La fonction get_subscribed_lists() nécessite également une adresse E-Mail en paramètre, contrairement à la fonction get_all_lists(), pour des raisons évidentes.

Après avoir récupéré l'adresse E-Mail d'un abonné, nous nous connectons à la base de données et nous récupérons toutes les listes auxquelles cet abonné n'est pas inscrit. Comme d'habitude pour ce genre de requêtes MySQL, nous nous servons de LEFT JOIN pour trouver les éléments qui ne correspondent pas.

Nous analysons le résultat dans une boucle, et nous construisons le tableau ligne par ligne grâce à la fonction intégrée array_push().

Maintenant que nous savons comment cette liste est générée, intéressons-nous aux boutons d'action associés.

Affichage des informations d'une liste :

Le bouton Informations présenté à la figure 7, déclenche l'action "information" :

    case "information" :

    {

        display_information($_GET["id"]) ;

         break ;

    }

Pour comprendre à quoi sert la fonction display_information(), examinons la figure 8.


Information_du_MLM.png


Cette fonction affiche des informations générales sur une Mailing List particulière, elle indique d'une part le nombre d'abonnés inscris à cette liste, d'autre part le nombre de bulletins qui ont été envoyés à cette liste et qui sont disponibles dans l'archive.

Le code de cette fonction se trouve au Listing 9.


Listing 9 : La fonction display_information() de output_fns.php - Cette fonction affiche les informations d'une liste.


La fonction display_information() se sert de deux autres fonctions pour l'aider dans sa tâche : la fonction load_list_info() et la fonction pretty(). La fonction load_list_info() récupère les informations dans la base de données. La fonction pretty() se contente de formater les données de la base de données, en supprimant les slashs, en transformant les fins de lignes en retours chariots HTML, etc.

Penchons-nous rapidement sur le code de la fonction load_list_info(). Cette fonction se trouve dans la bibliothèque de fonctions Mailing_List_Manager_fns.php. Vous trouverez son code au Listing 10.


Listing 10 : La fonction load_list_info() de Mailing_List_Manager_fns.php - Cette fonction génère un tableau contenant les informations d'une liste.


Cette fonction effectue trois requêtes dans la base de données pour récupérer le nom et les informations générales d'une liste à partir du tableau lists, le nombre d'abonnés à partir du tableau sub_lists et le nombre de bulletins envoyés à partir du tableau mail.

Affichage des archives d'une liste :

En plus d'afficher les informations générales d'une liste, les utilisateurs peuvent lire les E-Mails qui ont été envoyés à une mailing list, en cliquant sur le bouton Afficher l'archive. Ce bouton active l'action show-archive, qui exécute le code suivant :

    case "show-archive" :

    {

        display_items("Une archive pour" . get_list_name($_GET["id"]), get_archive($_GET["id"]), "view-html", "view-text", '') ;

         break ;

    }

Une fois encore, cette fonction se sert de la fonction display_items() pour afficher les différents éléments correspondant aux E-Mails qui ont été envoyés à la liste. Ces éléments sont récupérés à l'aide de la fonction get_archive() de Mailing_List_Manager_fns.php.

Pour comprendre à quoi sert la fonction get_archive(), examinons la figure 9.


Archive_Utilisateur_MLM.png


Cette fonction de la figure 9 est présentée au Listing 11.


Listing 11 : La fonction get_archive() de Mailing_List_Manager_fns.php - Cette fonction construit un tableau contenant les bulletins archivés d'une liste donnée.


Cette fonction va chercher dans la base de données les informations nécessaires (c'est-à-dire, dans ce cas les informations sur les E-Mails qui ont été envoyés) et construit un tableau qui pourra être passé à la fonction display_items().

Inscriptions et annulations :

Dans la liste des mailing lists présentée à la figure 7, chaque liste possède un bouton permettant aux utilisateurs de s'inscrire. De même, si les utilisateurs se servent de l'option Montrer Mes Listes pour afficher les listes auxquelles ils sont déjà inscrits. Ils verront un bouton Se Désabonné à côté de chaque liste.

Ces boutons activent les actions subscribe et unsubscribe, qui correspondent au code suivant :

    case "subscribe" :

    {

        subscribe(get_email(), $_GET["id"]) ;

        display_items("Listes souscrites", get_subscribed_lists(get_email()), "information", "show-archive", "unsubscribe") ;

         break ;

    }

    case "unsubscribe" :

    {

        unsubscribe(get_email(), $_GET["id"]) ;

        display_items("Se désabonner", get_subscribed_lists(get_email()), "information", "show-archive",
"unsubscribe") ;

         break ;

    }

Dans chaque cas, nous appelons une fonction (subscribe() ou unsubscribe()), et nous affichons à nouveau la liste des mailing lists auxquelles l'utilisateur est abonné, en appelant à nouveau la fonction display_items().

Les fonctions subscribe() et unsubscribe() sont présentées au Listing 12.


Listing 12 : Les fonctions subscribe() et unsubscribe de Mailing_List_Manager_fns.php - Ces fonctions permettent d'abonner l'utilisateur à une liste et d'annuler un abonnement.


La fonction subscribe() ajoute une ligne dans le tableau sub_lists correspondant à l'inscription de chaque utilisateur. La fonction unsubscribe() supprime cette ligne de chaque utilisateur loggé via l'inscription.

Modification des paramètres d'un compte :

Lorsque l'utilisateur clique sur le bouton Paramètres du Compte, l'action account-settings est exécutée. Voici le code de cette action :

    case "account-settings" :

    {

        display_account_form(@$normal_user, @$admin_user, get_email(), get_real_name(get_email()), get_mimetype(get_email())) ;

         break ;

    }

Comme vous pouvez le constater, nous nous servons à nouveau de la fonction display_account_form(), dont nous nous sommes déjà servi pour créer le compte. Cependant, nous lui passons cette fois les détails concernant l'utilisateur courant, qui seront recopiés dans le formulaire pour être modifiés plus facilement. Lorsque l'utilisateur clique sur le bouton d'envoi de ce formulaire, l'action store-account est activée, comme nous l'avons vu plus haut de cette leçon concernant le chapitre 15. 2. (Implémentation du login et création d'un nouveau compte).

Modification des mots de passe :

Le fait de cliquer sur le bouton Changer Mot de Passe active l'action change-password, qui exécute le code suivant :

    case "change-password" :

    {

        display_password_form() ;

        break ;

    }

La fonction display_password_form() (de la bibliothèque de output_fns.php) se contente d'afficher un formulaire permettant à l'utilisateur de modifier son mot de passe comme le montre la figure 10.


Modification_Mot_de_Passe_MLM.png


Lorsqu'un utilisateur clique sur le bouton Enregistrer le Mot de Passe en bas de ce formulaire, l'action store-change-password est activée. Voici le code correspondant à cette action :

    case "store-change-password" :

    {

        $old_password = $_POST["old_password"] ;

        $new_password = $_POST["new_password"] ;

        $new_password_2 = $_POST["new_password_2"] ;

        $email = $_POST["email"] ;

        if (change_password(get_email(), $email, $old_password, $new_password, $new_password_2))

    {

        echo "<BR /><BR /><b><font face = 'Arial' size = '3' color = '#004600'> OK&nbsp; : &nbsp;Mot de passe chang&eacute;.</font></b><BR /><BR /><BR /><BR /><BR /><BR />" ;

    }

        else

    {

        echo "<BR /><BR /><b><font face = 'Arial' size = '3' color = '#800000'>D&eacute;sol&eacute;, votre mot de passe n'a pas pu &ecirc;tre modifi&eacute;.</font></b>" ;

        display_password_form() ; // Nous rappelons cette fonction pour afficher le formulaire.

    }

        break ;

    }

Comme vous pouvez le constater, ce code tente de modifier le mot de passe avec la fonction change_password(), et renvoie le résultat de cette opération. La fonction change_password() se trouve dans la bibliothèque de fonctions user_auth_fns.php, et son code est présenté dans le Listing 13.


Listing 13 : La fonction change_password() de user_auth_fns.php - Cette fonction valide et met à jour le mot de passe d'un utilisateur.


Cette fonction est analogue aux autres fonctions de modification des mots de passe que nous avons déjà étudiées. Elle compare les deux nouveaux mots de passe saisis par l'utilisateur pour s'assurer qu'ils sont identiques, et si c'est bien le cas, elle tente de mettre à jour le mot de passe de l'utilisateur dans la base de données.

Fermeture de session :

Lorsqu'un utilisateur clique sur le bouton Log-Out, il déclenche l'action log-out. Le code exécuté par cette action dans le script principal se trouve, en fait dans la section de prétraitement de ce script : (index.php)

    if ($action == "log-out")

    {

        session_destroy() ;

        unset($action) ;

        unset($normal_user) ;

        unset($admin_user) ;

    }

Ce fragment de code supprime les variables de session et referme la session. Vous remarquerez qu'il supprime également la variable $action, ce qui signifie que nous entrons dans la section principale "sans aucune action" et déclenche le code suivant :

    case "log-in" :

    case '' : // Permet à l'utilisateur d'ouvrir une session ou à l'utilisateur classique de se logger sous un autre Nom.

    {

        if (!check_logged_in()) // Vérifie si l'utilisateur s'est bien loggé.

        display_login_form($action) ;

        break ;

    }

Cela permet à un autre utilisateur d'ouvrir une session, ou à l'utilisateur courant de se logger sous un autre Nom.

Nous terminons ainsi ce quatrième chapitre de cette leçon, et nous verrons dans le prochain, l'Implémentation des fonctions administratives, etc.



  Cliquez ici pour la leçon suivante ou dans le sommaire prévu à cet effet.   Haut de page
  Page précédente   Page suivante







Nombre de pages vues, à partir de cette date : le 23 MAI 2019

compteur de visite

    




Envoyez un courrier électronique à Administrateur Web Société pour toute question ou remarque concernant ce site Web. 

Version du site : 10. 5. 14 - Site optimisation 1280 x 1024 pixels - Faculté de Nanterre - Dernière modification : 19 MAI 2019.   

Ce site Web a été Créé le, 14 Mars 1999 et ayant Rénové, en MAI 2019.