Designed by Maunakea !
53 en ligne
  Forum | Actu | Glossaire | Codes | Tips | Liens | Livres | Annuaire
 

 Recherche





   

Inscription contrôlée à une NewsLetter ou Service (1/3)

Abonnement avec confirmation et désabonnement





DB77
Les procédures d'abonnement à une lettre d'information (newsletter) sont souvent demandées sur le forum. La question la plus fréquente étant « Comment savoir si l'adresse électronique est bonne ? »...
Le principe étudié ici peut également être adapté pour des abonnements/inscriptions à des services comme j'ai été amené à le développer pour l'inscription à un système de réservation en ligne à une salle de formation aux langues étrangères.
Voyons donc, pas à pas, comment faire pour être sûr d'enregistrer une adresse électronique valide et comment proposer à nos inscrits une option pour se désabonner.


Le formulaire - L'abonnement/désabonnement - L'envoi des lettres


 Contexte 
Le problème à résoudre est multiple :
- proposer un formulaire d'abonnement à nos visiteurs ;
- vérifier que l'adresse électronique saisie par l'abonné est valide ;
- proposer un lien de désabonnement pour ceux qui en ont assez de nous lire ;).
Il est clair que tout cela va nous obliger à créer une base de données pour y stocker les adresses électroniques de nos abonnés et éventuellement d'autres informations.
Nous nous limiterons, dans notre exemple, au nom, au prénom et à l'adresse électronique.

Le formulaire d'abonnement


En ASP (demande_inscription.asp)

<% 
' Envoi de mail avec confirmation - Denis Blomme - DB77
if request.form("ok")="Valider" then
   ' Envoi du mail de confirmation au futur abonné
   ' on prépare le corps du message
   corps="<HTML><BODY><FONT FACE='Arial, Verdana' SIZE=2>"
   corps=corps & "Pour activer votre inscription, cliquez sur ce lien : <a href="
   corps=corps & chr(34) & "http://site/inscription.asp?nom=" & UCase(request.form("nom"))
   corps=corps & "&prenom=" & request.form("prenom")
   corps=corps & "&mail=" & request.form("mail")
   corps=corps & "&abo=1" & chr(34)&">confirmation</a>"
   corps=corps+"</BODY></HTML>"
   ' On paramètre les autres infos avant envoi
   Set Mail = Server.CreateObject("Persits.MailSender")   
   Mail.Host = "smtp.a.moi"
   Mail.From = "mon.mel@a.moi"
   Mail.FromName = "Mon Nom"
   Mail.Subject = "Demande d'inscription"
   Mail.Body = corps
   Mail.IsHTML = True 'si True
   Mail.AddAddress request.form("mail")
   Mail.Send
   Set Mail=nothing
   %>
<script language="Javascript">
   alert("Vous allez recevoir un mail de confirmation.");self.close();
   </script>
<%
end if
%>

<html>
<head>
<title>Mon site</title>
<link rel="stylesheet" href="../inc/style.css" type="text/css">
<script language="Javascript">
function valider()
{   mes="";
   if (document.frm.nom.value==""){mes=mes+"\n- votre nom");}
   if (document.frm.prenom.value==""){mes=mes+"\n- votre prénom");}
   if (document.frm.mail.value==""){mes=mes+"\n- votre mél");}
// si tout Ok alors on envoie
if(mes!=""){alert("Veuillez renseigner :"+mes);return false;}
if(mes==""){return true;}
}
</script>

</head>
<body bgcolor="white" text="#336699" link="#336699" alink="Black" vlink="#336699">
<form name="frm" action="demande_inscription.asp" method="post" onSubmit="return valider()">
<table width="400" border=0 cellpadding=2 cellspacing=0>
 <tr align="left" class=grise><td valign="center" background="images/400-haut.gif">
    <font face="Verdana, Arial, Sans-serif" size="1" color="#FFFFFF">
    <b>&nbsp;&nbsp;Demande d'inscription</b></font>
 </td></tr>
 <tr>
<td align="left" class=bleue ><p align="left"><font face="Verdana, Arial, Sans-serif" size="1">
   <table width="390"><tr>
   <td align=right valign=top><font face="Arial, Verdana, sans-serif" size="1">Votre nom : </font></td>
   <td align=left valign=top><input type="text" name="nom" size="30"></td>
   </tr><tr>
   <td align=right valign=top><font face="Arial, Verdana, sans-serif" size="1">Votre prénom : </font></td>
   <td align=left valign=top><input type="text" name="prenom" size="30"></td>
   </tr><tr>
   <td align=right valign=top>
   <font face="Arial, Verdana, sans-serif" size="1">Votre adresse électronique : </font></td>
   <td align=left valign=top><input type="text" name="mail" size="30"></td>
   </tr><tr>
   <td align="center" colspan=2><input type="submit" name="ok" value="Valider"></td>
   </tr></table>
</td></tr></table>
</form>
</body>
</html>

Et en PHP (demande_inscription.php)

<?
if(@$_POST["ok"]=="Valider"){
   // Envoi du mail de confirmation au futur abonné
   // on prépare le corps du message
   $corps="<HTML><BODY><FONT FACE='Arial, Verdana' SIZE=2>";
   $corps.="Pour activer votre inscription, cliquez sur ce lien : <a href=";
   $corps.=chr(34)."http://site/inscription.php?nom=".strtoupper($_POST["nom"]);
   $corps.="&prenom=".$_POST["prenom"];
   $corps.="&mail=".$_POST["mail"];
   $corps.="&abo=1".chr(34).">confirmation</a>";
   $corps.="</BODY></HTML>";
   // On paramètre les autres infos avant envoi
   $subject = "Demande d'inscription";
   $TO = $_POST["mail"];
   $h = "From: mon.mel@a.moi\nContent-Type: text/html; charset=iso-8859-1\n";
   mail($TO, $subject, $corps, $h);
   ?>
<script language="Javascript">
   alert("Vous allez recevoir un mail de confirmation.");self.close();
   </script>
<?
}
?>

<html>
<head>
<title>Mon site</title>
<link rel="stylesheet" href="../inc/style.css" type="text/css">
<script language="Javascript">
function valider()
{   mes="";
   if (document.frm.nom.value==""){mes=mes+"\n- votre nom");}
   if (document.frm.prenom.value==""){mes=mes+"\n- votre prénom");}
   if (document.frm.mail.value==""){mes=mes+"\n- votre mél");}
// si tout Ok alors on envoie
if(mes!=""){alert("Veuillez renseigner :"+mes);return false;}
if(mes==""){return true;}
}
</script>

</head>
<body bgcolor="white" text="#336699" link="#336699" alink="Black" vlink="#336699">
<form name="frm" action="demande_inscription.php" method="post" onSubmit="return valider()">
<table width="400" border=0 cellpadding=2 cellspacing=0>
 <tr align="left" class=grise><td valign="center" background="images/400-haut.gif">
    <font face="Verdana, Arial, Sans-serif" size="1" color="#FFFFFF">
    <b>&nbsp;&nbsp;Demande d'inscription</b></font>
 </td></tr>
 <tr>
<td align="left" class=bleue ><p align="left"><font face="Verdana, Arial, Sans-serif" size="1">
   <table width="390"><tr>
   <td align=right valign=top><font face="Arial, Verdana, sans-serif" size="1">Votre nom : </font></td>
   <td align=left valign=top><input type="text" name="nom" size="30"></td>
   </tr><tr>
   <td align=right valign=top><font face="Arial, Verdana, sans-serif" size="1">Votre prénom : </font></td>
   <td align=left valign=top><input type="text" name="prenom" size="30"></td>
   </tr><tr>
   <td align=right valign=top>
   <font face="Arial, Verdana, sans-serif" size="1">Votre adresse électronique : </font></td>
   <td align=left valign=top><input type="text" name="mail" size="30"></td>
   </tr><tr>
   <td align="center" colspan=2><input type="submit" name="ok" value="Valider"></td>
   </tr></table>
</td></tr></table>
</form>
</body>
</html>


Que se passe-t-il ensuite ?


Pour pouvoir écrire dans ce forum, identifiez-vous !

  v1.3p © ASP-PHP.net 2002  

DB77 le 07/09/2008 (73 606 hits)
Didier Téléchargez gratuitement et légalement des logiciels Microsoft ! Si, si ;)
  • Visual Studio 2010
  • Office 2010
  • Expression Studio 3
  • SQL Server 2008
  • et d'autres...
Au fil des news  
PHP - Drupagora : 1ère edition
Utiliser Reporting Services pour des NewsLetter - SQL Server Reporting Services et les NewsLetters
Le moteur de rapport inclus dans Microsoft SQL Server permet de créer de nombreux rapports ...
Changer la page d'erreur 401 SharePoint - La page d'erreur d'authentification SharePoint
Avec l'authentification classique des sites SharePoint, l'erreur d'authentification est gérée par ...
PHP - Graphique de l'angle du soleil en fonction du lieu
PHP5 - Graphique de l'angle du soleil en fonction du lieu
Adobe - Disponibilité d'Adobe Creative Suite 5.5
Les Thèmes dans SharePoint 2010 - Gérer les thèmes dans SharePoint 2010
SharePoint 2010 apporte de nombreuses modifications dont certaines dans le principe des thèmes.
JavaScript - fonction qui affiche l'heure à travers javascript
Installer SharePoint Foundation 2010 sur Windows 7 - Installer SP Foundation 2010 sur Windows Seven
Lorsque l'on souhaite développer dans le monde SharePoint, il existe plusieurs solutions. La ...
SharePoint et SQL Server 2008 R2 Report Server - Comment accéder à SharePoint depuis SSRS 2008 R2
Depuis la première version, la solution de rapport proposée par Microsoft "SQL Server Reporting ...
JS - Envoi d'un formulaire après chargement d'une image
Divers - Bannir une ip dans le global asax
Dreamweaver CS5 - Nouvelle version Dreamweaver CS5
Déjà plus de 6 mois que le produit est sorti, il fallait bien que je vous en parle un peu. Je vous ...
SharePoint Output Caching dans un site Intranet - Comment utiliser le cache dans un site Publishing
Afin de permettre l'amélioration des performances de sa ferme MOSS utilisée pour le site portail ...
Adobe - Adobe lance le Musée Adobe des Médias Numériques
Adobe - Adobe lance HTML5 Pack pour Illustrator CS5
PHP - Forum PHP 2010 : Le programme
Magazines - Le numéro 133 de programmez est disponible
Adobe - Adobe lance des applications Photoshop Express....
PHP - Détermination de l'intersection entre 2 segments
Magazines - Le N°132 de Programmez est disponible
Les alertes dans SharePoint 2007 - Comment SharePoint 2007 gère les User Alerts
Une des fonctionnalités de base de SharePoint, aussi bien dans Windows SharePoint Services (WSS) ...
Adobe - Photoshop.com Mobile pour Android 1.2
Adobe - Adobe dévoile une technologie de lecture.......
PHP - Experts PHP : participez au Forum PHP 2010 !
PHP - Fobec.com - Code source PHP & javascript
Foliotage alphabétique - Lister sur la première lettre d'un champ
Pour faire suite à l'article de JPierre sur la pagination alphabétique, voici, en ASP et en PHP, ...
Dreamweaver CS4 + Php + Mysql - Pagination alphabétique
Je vous propose la création d'une barre de navigation ou pagination alphabétique pour filtrer les ...
Adobe - HTML5 dans Dreamweaver CS5
VBScript - Déterminer si un chemin est absolu ou relatif
VBScript - Lire/écrire un fichier texte
Magazines - Le N°130 de Programmez est disponible
Hebergement - Hébergement à prix libre
Adobe - Adobe Creative Suite 5
PHP - Calcul de la date de Pâques
Magazines - Le N°128 de Programmez est disponible
Magazines - Le N°127 de Programmez est disponible
Dreamweaver CS4 + Php + Mysql - Trucs et Astuces - Part 6
Pour continuer dans le même style, je vous propose une suite au précédent article. Rechercher tous ...
Adobe - Adobe Photoshop.com Mobile pour iPhone 1.1
JavaScript - Ajouter une page dans vos favorites
Tutorial : HTML | Scripting | ASP-PHP | ASP.net | SQL Server | XML
Sharepoint | XAML | Pocket | Dreamweaver | VML | Divers
  Scripts : Scripting | ASP-PHP | ASP.net | Divers
  Boutique | Annuaire | Bannières | Météo | Tribune | Partenariats
v3b © Didier 2003   
 

Corpo Sciences de Reims Partitions gratuites Carte, météo, annonces
 ASP-magazine DotNet Project TechNet Groupes Utilisateurs Microsoft MVP