SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
Comment créer un site de membres

Dans ce cours 03, nous allons voir :

Inscription du membre dans votre auto-répondeur
Inscription du membre sur votre site pour identification future
Validation de son compte par email
L'inscription du membre

Au tout début de la relation avec vos membres, rien de tel pour collecter leur adresse email que de
leur offrir un échantillon gratuit de ce que vous proposez. C'est peut-être x chapitres du cours réel,
ou bien une version gratuite adaptée. Vous pourrez aussi lui faire plusieurs fois votre offre payante.
Une fois qu'il aura estimé la valeur de ce qu'on lui offre, il décidera plus facilement si il souhaite
passer à l'offre payante.

Si vous faites une page de vente normale, même très bien faite, vous allez rencontrer beaucoup de
résistance. « Dois-je faire confiance en cette personne, je ne la connais pas ! », « Cette formation
correspond à ce que je recherche ? », »Je vais peut-être chercher et trouver moins cher
ailleurs », »C'est pleine lune ce soir, je n'achète rien » et tous ces visiteurs, une fois parti, vous aurez
beaucoup de chance si elle revient sur votre site et pour acheter votre formation.

Une des solutions est de faire une page de capture. Une accroche, une liste de bénéfices, un
formulaire et votre visiteur vous laisse en toute confiance son prénom et son email en échange de sa
formation gratuite, sans résistance en plus !

A partir de là, vous allez faire connaissance avec lui, lui prouver que votre formation est de qualité,
qu'il en aura pour plus que son argent, que vous êtes sympathique et efficace et surtout lui rappeler
de temps en temps votre offre payante et cette méthode marche !

Voyons votre site de membres maintenant. Une page de capture c'est tout un art à part mais dans un
premier temps il faut faire simple et nous allons la travailler dans la page 1 de modx qui est la page
par défaut du site.

Une fois que le membre aura rempli le formulaire de la page de capture, il sera inscrit dans votre
auto-répondeur, ensuite il faudra rediriger le membre vers une page d'inscription au site afin qu'il
puisse plus tard s'identifier sur le site.
Pour créer cette première page, cliquez sur l'onglet « Site » et ensuite « Nouvelle Ressource »




Il suffit maintenant de remplir les champs Titre de la page, alias et le contenu.

Le titre s'affichera dans la barre bleue de votre navigateur et ce sera aussi un repère pour vous quand
le site sera rempli de pages.

Si vous ne mettez pas d'alias, la page sera disponible sous la forme votredomaine.com/index.php?
id=x
Pas très sexy hein !?

Si vous mettez un alias, par exemple 'capture', la page sera disponible sous la forme
votredomaine.com/capture.html.

Retenez bien cette manipulation pour ajouter une page car elle servira tout le long de cette
formation.
Dans le contenu, une explication pour expliquer au membre qu'il doit maintenant s'inscrire sur le
site pour s'identifier plus tard et à la suite du texte, un snippet. [!inscription!]

Avant de vous donner le code de ce snippet, vous devez encore préparer la page 'après inscription'.
Sur cette page vous expliquez que le membre va recevoir un email de validation sur lequel il doit
cliquer. Dans le code du snippet, vous devez modifier les parties en rouge avec vos propres
information et la modification en vert par l'identifiant de la page que vous venez de faire.

Code de ce snippet [!inscription!] :

<?php
function check_username($username) {
 $username = trim($username); // strip any white space
 $response = array(); // our response
// if the username is blank
    if (!$username) {
      $response = array(
        'ok' => false,
        'msg' => "Identifiant vide");

  // if the username does not match a-z or '.', '-', '_' then it's not valid
  } else if (!preg_match('/^[a-zA-Z0-9.-_]+$/', $username)) {
    $response = array(
      'ok' => false,
      'msg' => "Votre identifiant contient des caractères interdits,autorisés le point, le souligné et le
tiret (.-_)");

    // this would live in an external library just to check if the username is taken
    } else if (username_taken($username)) {
      $response = array(
        'ok' => false,
        'msg' => "Cet identifiant est déjà utilisé");

    // it's all good
    } else {
      $response = array(
        'ok' => true,
        'msg' => "Identifiant ok");
    }

    return $response;
}

function username_taken($username) {
       global $modx;
       $query = 'SELECT username FROM ' . $modx->getFullTableName ( 'web_users' ) . '
WHERE username="' . $username.'"' ;
       $records = $modx->db->query ( $query );
       if ($modx->db->getRecordCount ( $records ) > 0) {
              return true;
       }else{
              return false;
       }
}

function email_taken($username) {
       global $modx;
       $query = 'SELECT email FROM ' . $modx->getFullTableName ( 'web_user_attributes' ) . '
WHERE email="' . $username.'"' ;
       $records = $modx->db->query ( $query );
       if ($modx->db->getRecordCount ( $records ) > 0) {
              return true;
       }else{
              return false;
       }
}

Contenu connexe

Tendances

Javascript
JavascriptJavascript
Javascriptkarousn
 
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...Tarik Zakaria Benmerar
 
jQuery — fonctionnalités avancées
jQuery — fonctionnalités avancéesjQuery — fonctionnalités avancées
jQuery — fonctionnalités avancéesRémi Prévost
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
 
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQLTrucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQLDamien Seguy
 
Bases de PHP - Partie 1
Bases de PHP - Partie 1Bases de PHP - Partie 1
Bases de PHP - Partie 1Régis Lutter
 
Cours j query-id1575
Cours j query-id1575Cours j query-id1575
Cours j query-id1575kate2013
 
Php mysql cours
Php mysql coursPhp mysql cours
Php mysql courszan
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDOAbdoulaye Dieng
 

Tendances (20)

Javascript
JavascriptJavascript
Javascript
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
 
PHP &amp; MySQL
PHP &amp; MySQLPHP &amp; MySQL
PHP &amp; MySQL
 
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
 
jQuery — fonctionnalités avancées
jQuery — fonctionnalités avancéesjQuery — fonctionnalités avancées
jQuery — fonctionnalités avancées
 
Le Tracking sur Internet
Le Tracking sur InternetLe Tracking sur Internet
Le Tracking sur Internet
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
 
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQLTrucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
 
Les structures de données PHP5
Les structures de données PHP5Les structures de données PHP5
Les structures de données PHP5
 
Bases de PHP - Partie 1
Bases de PHP - Partie 1Bases de PHP - Partie 1
Bases de PHP - Partie 1
 
Manualjquery
ManualjqueryManualjquery
Manualjquery
 
Introduction au Jquery
Introduction au JqueryIntroduction au Jquery
Introduction au Jquery
 
Chap2
Chap2Chap2
Chap2
 
74 kg
74 kg74 kg
74 kg
 
Cours j query-id1575
Cours j query-id1575Cours j query-id1575
Cours j query-id1575
 
Php mysql cours
Php mysql coursPhp mysql cours
Php mysql cours
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
SQL et MySQL
SQL et MySQLSQL et MySQL
SQL et MySQL
 
66 kg
66 kg66 kg
66 kg
 
Cours PHP avancé
Cours PHP avancéCours PHP avancé
Cours PHP avancé
 

En vedette

Comment créer un Site De Membres
Comment créer un Site De MembresComment créer un Site De Membres
Comment créer un Site De MembresPatrick Van Hoof
 
APMG Showcase 2013, Relever le défi d’un Programme de transformation d’enverg...
APMG Showcase 2013, Relever le défi d’un Programme de transformation d’enverg...APMG Showcase 2013, Relever le défi d’un Programme de transformation d’enverg...
APMG Showcase 2013, Relever le défi d’un Programme de transformation d’enverg...Dominique Causse
 
Comment CréEr Un Site De Membres 04
Comment CréEr Un Site De Membres   04Comment CréEr Un Site De Membres   04
Comment CréEr Un Site De Membres 04Patrick Van Hoof
 

En vedette (8)

Presentation N1c1
Presentation N1c1Presentation N1c1
Presentation N1c1
 
Installation Modx
Installation ModxInstallation Modx
Installation Modx
 
Comment créer un Site De Membres
Comment créer un Site De MembresComment créer un Site De Membres
Comment créer un Site De Membres
 
APMG Showcase 2013, Relever le défi d’un Programme de transformation d’enverg...
APMG Showcase 2013, Relever le défi d’un Programme de transformation d’enverg...APMG Showcase 2013, Relever le défi d’un Programme de transformation d’enverg...
APMG Showcase 2013, Relever le défi d’un Programme de transformation d’enverg...
 
Presentation N1c1
Presentation N1c1Presentation N1c1
Presentation N1c1
 
Avec Son
Avec SonAvec Son
Avec Son
 
Presentation N1c1
Presentation N1c1Presentation N1c1
Presentation N1c1
 
Comment CréEr Un Site De Membres 04
Comment CréEr Un Site De Membres   04Comment CréEr Un Site De Membres   04
Comment CréEr Un Site De Membres 04
 

Similaire à Comment Créer Un Site De Membres vol 03

Religión, Cultura y Valores (Curso DECA, Módulo I). El hecho religioso 5
Religión, Cultura y Valores (Curso DECA, Módulo I). El hecho religioso 5Religión, Cultura y Valores (Curso DECA, Módulo I). El hecho religioso 5
Religión, Cultura y Valores (Curso DECA, Módulo I). El hecho religioso 5Pablo Quintas Barros
 
Informe de gestión
Informe de gestiónInforme de gestión
Informe de gestiónEktwr1982
 
Ganjul arsh (1)
Ganjul arsh (1)Ganjul arsh (1)
Ganjul arsh (1)zareenaa
 
Educatieve spelen voor upload naar moodle
Educatieve spelen voor upload naar moodleEducatieve spelen voor upload naar moodle
Educatieve spelen voor upload naar moodleCVO-SSH
 
Death is Enough As An Admonition
Death is Enough As An AdmonitionDeath is Enough As An Admonition
Death is Enough As An AdmonitionIslamic Library
 
ΠΛΗ20 ΜΑΘΗΜΑ 3.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ20 ΜΑΘΗΜΑ 3.3 (ΕΚΤΥΠΩΣΗ)ΠΛΗ20 ΜΑΘΗΜΑ 3.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ20 ΜΑΘΗΜΑ 3.3 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
Javascript #2 : valeurs, types & opérateurs
Javascript #2 : valeurs, types & opérateursJavascript #2 : valeurs, types & opérateurs
Javascript #2 : valeurs, types & opérateursJean Michel
 
Présentation les enjeux de la mobilité dg v1.1
Présentation les enjeux de la mobilité dg v1.1Présentation les enjeux de la mobilité dg v1.1
Présentation les enjeux de la mobilité dg v1.1iSeeds Software
 
( Espiritismo) # - andre luiz - margareth a g alberico - centro de planejam...
( Espiritismo)   # - andre luiz - margareth a g alberico - centro de planejam...( Espiritismo)   # - andre luiz - margareth a g alberico - centro de planejam...
( Espiritismo) # - andre luiz - margareth a g alberico - centro de planejam...Instituto de Psicobiofísica Rama Schain
 
การบันทึกและการออกจากโปรแกรม
การบันทึกและการออกจากโปรแกรมการบันทึกและการออกจากโปรแกรม
การบันทึกและการออกจากโปรแกรมเทวัญ ภูพานทอง
 
Tutorial xtecblocs
Tutorial xtecblocsTutorial xtecblocs
Tutorial xtecblocsatolosa1
 
Arm7 instruction set
Arm7 instruction setArm7 instruction set
Arm7 instruction setfivesquare
 

Similaire à Comment Créer Un Site De Membres vol 03 (16)

Religión, Cultura y Valores (Curso DECA, Módulo I). El hecho religioso 5
Religión, Cultura y Valores (Curso DECA, Módulo I). El hecho religioso 5Religión, Cultura y Valores (Curso DECA, Módulo I). El hecho religioso 5
Religión, Cultura y Valores (Curso DECA, Módulo I). El hecho religioso 5
 
Informe de gestión
Informe de gestiónInforme de gestión
Informe de gestión
 
Ganjul arsh (1)
Ganjul arsh (1)Ganjul arsh (1)
Ganjul arsh (1)
 
Edu 1 republica
Edu 1 republicaEdu 1 republica
Edu 1 republica
 
Educatieve spelen voor upload naar moodle
Educatieve spelen voor upload naar moodleEducatieve spelen voor upload naar moodle
Educatieve spelen voor upload naar moodle
 
Business of offload v01
Business of offload v01Business of offload v01
Business of offload v01
 
Death is Enough As An Admonition
Death is Enough As An AdmonitionDeath is Enough As An Admonition
Death is Enough As An Admonition
 
ΠΛΗ20 ΜΑΘΗΜΑ 3.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ20 ΜΑΘΗΜΑ 3.3 (ΕΚΤΥΠΩΣΗ)ΠΛΗ20 ΜΑΘΗΜΑ 3.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ20 ΜΑΘΗΜΑ 3.3 (ΕΚΤΥΠΩΣΗ)
 
Javascript #2 : valeurs, types & opérateurs
Javascript #2 : valeurs, types & opérateursJavascript #2 : valeurs, types & opérateurs
Javascript #2 : valeurs, types & opérateurs
 
Web-UX / Agile avec UX
Web-UX / Agile avec UXWeb-UX / Agile avec UX
Web-UX / Agile avec UX
 
Présentation les enjeux de la mobilité dg v1.1
Présentation les enjeux de la mobilité dg v1.1Présentation les enjeux de la mobilité dg v1.1
Présentation les enjeux de la mobilité dg v1.1
 
( Espiritismo) # - andre luiz - margareth a g alberico - centro de planejam...
( Espiritismo)   # - andre luiz - margareth a g alberico - centro de planejam...( Espiritismo)   # - andre luiz - margareth a g alberico - centro de planejam...
( Espiritismo) # - andre luiz - margareth a g alberico - centro de planejam...
 
การบันทึกและการออกจากโปรแกรม
การบันทึกและการออกจากโปรแกรมการบันทึกและการออกจากโปรแกรม
การบันทึกและการออกจากโปรแกรม
 
Apprenez le jQuery
Apprenez le jQueryApprenez le jQuery
Apprenez le jQuery
 
Tutorial xtecblocs
Tutorial xtecblocsTutorial xtecblocs
Tutorial xtecblocs
 
Arm7 instruction set
Arm7 instruction setArm7 instruction set
Arm7 instruction set
 

Comment Créer Un Site De Membres vol 03

  • 1. Comment créer un site de membres Dans ce cours 03, nous allons voir : Inscription du membre dans votre auto-répondeur Inscription du membre sur votre site pour identification future Validation de son compte par email
  • 2. L'inscription du membre Au tout début de la relation avec vos membres, rien de tel pour collecter leur adresse email que de leur offrir un échantillon gratuit de ce que vous proposez. C'est peut-être x chapitres du cours réel, ou bien une version gratuite adaptée. Vous pourrez aussi lui faire plusieurs fois votre offre payante. Une fois qu'il aura estimé la valeur de ce qu'on lui offre, il décidera plus facilement si il souhaite passer à l'offre payante. Si vous faites une page de vente normale, même très bien faite, vous allez rencontrer beaucoup de résistance. « Dois-je faire confiance en cette personne, je ne la connais pas ! », « Cette formation correspond à ce que je recherche ? », »Je vais peut-être chercher et trouver moins cher ailleurs », »C'est pleine lune ce soir, je n'achète rien » et tous ces visiteurs, une fois parti, vous aurez beaucoup de chance si elle revient sur votre site et pour acheter votre formation. Une des solutions est de faire une page de capture. Une accroche, une liste de bénéfices, un formulaire et votre visiteur vous laisse en toute confiance son prénom et son email en échange de sa formation gratuite, sans résistance en plus ! A partir de là, vous allez faire connaissance avec lui, lui prouver que votre formation est de qualité, qu'il en aura pour plus que son argent, que vous êtes sympathique et efficace et surtout lui rappeler de temps en temps votre offre payante et cette méthode marche ! Voyons votre site de membres maintenant. Une page de capture c'est tout un art à part mais dans un premier temps il faut faire simple et nous allons la travailler dans la page 1 de modx qui est la page par défaut du site. Une fois que le membre aura rempli le formulaire de la page de capture, il sera inscrit dans votre auto-répondeur, ensuite il faudra rediriger le membre vers une page d'inscription au site afin qu'il puisse plus tard s'identifier sur le site.
  • 3. Pour créer cette première page, cliquez sur l'onglet « Site » et ensuite « Nouvelle Ressource » Il suffit maintenant de remplir les champs Titre de la page, alias et le contenu. Le titre s'affichera dans la barre bleue de votre navigateur et ce sera aussi un repère pour vous quand le site sera rempli de pages. Si vous ne mettez pas d'alias, la page sera disponible sous la forme votredomaine.com/index.php? id=x Pas très sexy hein !? Si vous mettez un alias, par exemple 'capture', la page sera disponible sous la forme votredomaine.com/capture.html. Retenez bien cette manipulation pour ajouter une page car elle servira tout le long de cette formation.
  • 4. Dans le contenu, une explication pour expliquer au membre qu'il doit maintenant s'inscrire sur le site pour s'identifier plus tard et à la suite du texte, un snippet. [!inscription!] Avant de vous donner le code de ce snippet, vous devez encore préparer la page 'après inscription'. Sur cette page vous expliquez que le membre va recevoir un email de validation sur lequel il doit cliquer. Dans le code du snippet, vous devez modifier les parties en rouge avec vos propres information et la modification en vert par l'identifiant de la page que vous venez de faire. Code de ce snippet [!inscription!] : <?php function check_username($username) { $username = trim($username); // strip any white space $response = array(); // our response
  • 5. // if the username is blank if (!$username) { $response = array( 'ok' => false, 'msg' => "Identifiant vide"); // if the username does not match a-z or '.', '-', '_' then it's not valid } else if (!preg_match('/^[a-zA-Z0-9.-_]+$/', $username)) { $response = array( 'ok' => false, 'msg' => "Votre identifiant contient des caractères interdits,autorisés le point, le souligné et le tiret (.-_)"); // this would live in an external library just to check if the username is taken } else if (username_taken($username)) { $response = array( 'ok' => false, 'msg' => "Cet identifiant est déjà utilisé"); // it's all good } else { $response = array( 'ok' => true, 'msg' => "Identifiant ok"); } return $response; } function username_taken($username) { global $modx; $query = 'SELECT username FROM ' . $modx->getFullTableName ( 'web_users' ) . ' WHERE username="' . $username.'"' ; $records = $modx->db->query ( $query ); if ($modx->db->getRecordCount ( $records ) > 0) { return true; }else{ return false; } } function email_taken($username) { global $modx; $query = 'SELECT email FROM ' . $modx->getFullTableName ( 'web_user_attributes' ) . ' WHERE email="' . $username.'"' ; $records = $modx->db->query ( $query ); if ($modx->db->getRecordCount ( $records ) > 0) { return true; }else{ return false; } }
  • 6. function ValidEmail($address) { if( ereg( ".*<(.+)>", $address, $regs ) ) { $address = $regs[1]; } if(ereg( "^[^@ ]+@([a-zA-Z0-9-]+.)+([a-zA-Z0-9-]{2}|net|com|gov|mil|org|edu|int|lu|be| info)$",$address) ) return true; else return false; } if ($_POST['formid']=='inscription'){ $username=$modx->db->escape($_POST['username']); $password=$modx->db->escape($_POST['password']); $password2=$modx->db->escape($_POST['password2']); $fullname=$modx->db->escape($_POST['fullname']); $email=$modx->db->escape($_POST['email']); $tos=$modx->db->escape($_POST['tos']); // initialisation des variables $errors = 0 ; $message = '' ; // vérification de l'identifiant, syntaxe et existence dans la db $question = array(); $question = check_username($username); if ($question['ok']==false){ $message.=$question['msg'].'<br>'; $errors = 1; } // Vérification pour l'adresse email if (email_taken($email)) { $message.='Vous avez déjà un compte avec cet adresse email'.'<br>'; $errors = 1; } // vérification des mots de passe if (strlen($password)<6){ $message.='Le mot de passe doit contenir au moins 6 caractères'.'<br>'; $errors = 1; } if ($password!=$password2){ $message.='Les mots de passe sont différents'.'<br>'; $errors = 1; } if ($fullname==''){
  • 7. $message.='Introduisez votre prénom et votre nom'.'<br>'; $errors = 1; } if ($email==''){ $message.='Introduisez votre adresse email'.'<br>'; $errors = 1; }else{ if (ValidEmail($email)){ }else{ $message.='Votre adresse email semble incorrecte'.'<br>'; $errors = 1; } } if ($tos==''){ $message.='Vous devez cocher la case `j'accepte les conditions d'utilisation`'.'<br>'; $errors = 1; } // si on contate une erreur on remet le formulaire complété, sinon on met les informations en db if ($errors == 1){ $modx->setPlaceholder('validationmessage',$message); $output=''; $output.='<div class="BoxGris">'; $output.='<h3>Inscription<br /></h3>'; $output.='<div class="BoxGrisContent">'; $output.='<p><span style="color:#900;">[+validationmessage+]</span></p>'; $output.='<form action="[~[*id*]~]" method="post">'; $output.=' <input type="hidden" name="formid" value="inscription" />'; $output.='<table cellspacing="0" cellpadding="0" width="100%">'; $output.=' <tr>'; $output.=' <td>'; $output.=' Identifiant *'; $output.=' </td>'; $output.=' <td>'; $output.=' <input class="field" type="text" name="username" size="40" maxlength="100" value="'.$username.'" />'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' Mot de passe (6 caractères au minimum) *';
  • 8. $output.=' </td>'; $output.=' <td>'; $output.=' <input class="field" type="password" name="password" size="40" maxlength="100" value="'.$password.'" />'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' Confirmez le mot de passe *'; $output.=' </td>'; $output.=' <td>'; $output.=' <input class="field" type="password" name="password2" size="40" maxlength="100" value="'.$password2.'" />'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' Votre prénom *'; $output.=' </td>'; $output.=' <td>'; $output.=' <input class="field" type="text" name="fullname" size="40" maxlength="100" value="'.$fullname.'" />'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' Email *'; $output.=' </td>'; $output.=' <td>'; $output.=' <input class="field" type="text" name="email" size="40" maxlength="100" value="'.$email.'" />'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' &nbsp;';
  • 9. $output.=' </td>'; $output.=' <td>'; $output.=' <input type="checkbox" name="tos" id="wlpeTosCheckbox" class="maite"/> * J'accepte les <a target="_blank" href="Conditions- dutilisation.html">conditions d'utilisation</a>'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' <td>'; $output.=' <input type="submit" name="submit" value="M'enregistrer" />'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td colspan="2">'; $output.=' * Champs obligatoires<br><br><br>Toutes les données collectées resteront strictement confidentielles'; $output.=' </td>'; $output.=' </tr>'; $output.='</table>'; $output.='</form>'; $output.='</div>'; $output.='</div>'; return $output; }else{ // tout s'est bien déroulé, on met l'information dans les différentes tables $table_name = $modx->getFullTableName( 'web_users' ); $fields = array('username' => $username, 'password' => md5($password), ); $nouveau_client=$modx->db->insert( $fields, $table_name); $table_name = $modx->getFullTableName( 'web_groups' ); $fields = array('webgroup' => 1, 'webuser' => $nouveau_client, ); $modx->db->insert( $fields, $table_name); $table_name = $modx->getFullTableName( 'web_user_attributes' );
  • 10. $fields = array('internalKey' => $nouveau_client, 'fullname' => $fullname, 'photo' => '', 'email' => $email, 'blocked' => 1, ); $modx->db->insert( $fields, $table_name); //Envoi du mail de notification $mail_from = 'MIME-Version: 1.0' . "rn"; $mail_from .= 'Content-type: text/html; charset=utf-8' . "rn"; $mail_from .= "From: info@sitedemembres.com"; // Adresse mail envoi $message = "Votre compte sitedemembres.com a maintenant été créé.<br>"; $message .= "<br>"; $message .= "L'identifiant de votre compte est : ".$username."<br>"; $message .= "Votre mot de passe est : ".$password."<br>"; $message .= "<br>"; $message .= "Avant de pouvoir utiliser votre identifiant, vous devez d'abord activer votre compte en suivant le lien ci-dessous ou en le recopiant dans votre navigateur:<br>"; $message .= "<br>"; $message .= "http://sitedemembres.com/validation?key=".$nouveau_client."<br>"; $message .= "<br>"; $message .= "<br>"; $message .= "Si vous avez un quelconque problème avec le processus d'activation, veuillez nous contacter via l’adresse mail suivante : info@sitedemembres.com<br>"; $message .= "<br>"; $message .= "Cordialement,<br>"; $message .= "Patrick Van Hoof"; mail($email, "Validation de votre compte sur sitedemembres.com",$message,$mail_from); $modx->sendForward(4); } } else { $output=''; $output.='<div class="BoxGris">'; $output.='<h3>Inscription<br /></h3>'; $output.='<div class="BoxGrisContent">'; $output.='<p><span style="color:#900;">[+validationmessage+]</span></p>'; $output.='<form action="[~[*id*]~]" method="post">'; $output.=' <input type="hidden" name="formid" value="inscription" />'; $output.='<table cellspacing="0" cellpadding="0" width="100%">'; $output.=' <tr>'; $output.=' <td>'; $output.=' Identifiant *'; $output.=' </td>'; $output.=' <td>'; $output.=' <input class="field" type="text" name="username" size="40" maxlength="100" />';
  • 11. $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' Mot de passe (6 caractères au minimum) *'; $output.=' </td>'; $output.=' <td>'; $output.=' <input class="field" type="password" name="password" size="40" maxlength="100" />'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' Confirmez le mot de passe *'; $output.=' </td>'; $output.=' <td>'; $output.=' <input class="field" type="password" name="password2" size="40" maxlength="100" />'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' Votre prénom *'; $output.=' </td>'; $output.=' <td>'; $output.=' <input class="field" type="text" name="fullname" size="40" maxlength="100" value="'.$fullname.'" />'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' Email *'; $output.=' </td>'; $output.=' <td>'; $output.=' <input class="field" type="text" name="email" size="40" maxlength="100" value="'.$email.'" />';
  • 12. $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' <td>'; $output.=' <input type="checkbox" name="tos" id="wlpeTosCheckbox" class="maite"/> * J'accepte les <a target="_blank" href="Conditions-dutilisation.html">conditions d'utilisation</a>'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' <td>'; $output.=' <input type="submit" name="submit" value="M'enregistrer" />'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' <td>'; $output.=' &nbsp;'; $output.=' </td>'; $output.=' </tr>'; $output.=' <tr>'; $output.=' <td colspan="2">'; $output.=' * Champs obligatoires<br><br><br>Toutes les données personnelles collectées resteront strictement confidentielles'; $output.=' </td>'; $output.=' </tr>'; $output.='</table>'; $output.='</form>'; $output.='</div>'; $output.='</div>'; return $output; } ?>
  • 13. Rendez vous dans le menu de votre auto-répondeur préféré et générez le formulaire d'inscription avec la page que vous venez de créer en redirection après l'inscription que vous collez dans un chunk « form_capture » par exemple. (Vous savez maintenant comment créer un chunk, un snippet). Et finalement vous collez le chunk {{form_capture}} dans la page de capture. Maintenant le membre attend son email de validation du site, nous allons préparer deux pages. La première sera une page avec un simple message de confirmation d'inscription, il est passé toutes les étapes, on le rassure, et vous mémorisez l'identifiant de cette page Ensuite vous créez une autre page avec comme alias 'validation' et on va coller un snippet [! validation_membre!] Le code de ce snippet validation_membre : <?php $webInternalKey=$modx->db->escape($_GET['key']); if ($webInternalKey=='') { $modx->sendForward(1); }else{ $table_name = $modx->getFullTableName( 'web_user_attributes' ); $fields = array('blocked' => 0); $result = $modx->db->update( $fields, $table_name, 'internalKey = ' . $webInternalKey); if( $result ) { $modx->sendForward(5); }else { echo 'Un problème est intervenu, merci d'en avertir info@sitedemembres.com'; } } ?> Modifier la 1ere zone rouge avec l'identifiant de votre page de confirmation. L'autre zone rouge avec votre adresse email. Et voilà, vous avez maintenant tout le circuit depuis la visite de vos membres, inscription sur l'auto- répondeur, inscription sur le site avec validation des informations. On arrive à la fin du compliqué ! Merci d'avoir tenu le coup jusque là, vous êtes très motivé et je vous retrouve (sur les genoux ?) dans le cours suivant ;) Patrick info@sitedememebres.com