Accueil > Forum > > > > validation d une inscription par mail
validation d une inscription par mail
mercredi 19 août 2009 à 19:28:17 |
validation d une inscription par mail

martiallover
|
je vous poste mon prob je travaille sur une solution
pour une inscription sur un espace membre et la reception d un mail de confirmation je tombre sur un script pour faire des test et pa la suite l adapater avec mes exigence jquery , regex ect
je procede à l utilisation de class open source phpmailer
le mail est correctement envoyé je le recoit meme sur ma boite
au moment ou je clique sur le mail de confirmation pour la validation rien ne change pou explique un peut
le script
-une page de d inscription
-le membre recoit une page de validation
-le compte s actif au moment de la validation de ce fait
j il ya deux table une table comptes-provisoires et compte-definitifs
lorsque on valide l inscription la table compte provisoire est vidé
tout va bien lorsque en arrive au compte provisoire mais lorsque on procede a l activation rien.
voila mon script merci pour votre aide.
<?php
// variable initialisée à zero pour tester les conditions
require("class.phpmailer.php");
$nb_faux = 0;
if (isset($_POST['pseudo']) && isset($_POST['password']) && isset($_POST['confirm_password']) && isset($_POST['mail']))
{
$pseudo = $_POST['pseudo'];
$password = $_POST['password'];
$confirm_password = $_POST['confirm_password'];
$mail = $_POST['mail'];
// incrémenter la variable $nb_faux si les champs du formulaire sont vides
if (empty($_POST['pseudo']) || empty($_POST['password']) || empty($_POST['confirm_password']) || empty($_POST['mail']))
{
?>Champs non remplis<br/><?
$nb_faux++;
}
// incrementer la variable $nb_faux si des caracteres ne sont pas autorisés pour le pseudo
if (!preg_match('`^(\w{4,15})$`', $pseudo))
{
?>Caractères non autorisés pour le pseudo<br/><?
$nb_faux++;
}
// incrementer la variable $nb_faux si des caracteres ne sont pas autorisés pour le mot de passe et sa confirmation
if (!preg_match('`^(\w{4,15})$`', $password) or !preg_match('`^(\w{4,15})$`', $confirm_password ))
{
?>Caractères non autorisés pour le mot de passe<br/><?
$nb_faux++;
}
// incrementer la variable $nb_faux si le mot de passe et la confirmation du mot de passe ne sont pas les meme
if ($password != $confirm_password)
{
?>Mauvais pass<br/><?
$nb_faux++;
}
// incrementer la variable $nb_faux si le pseudo existe dans la base de donnée
if ($nb_faux >= 0)
{
include("pcdb.php");
$connexion = mysql_connect($hote, $utilisateur, $mdp) or die('<br/>Connexion au serveur impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
$choix_base = mysql_select_db($data_base, $connexion) or die('<br/>Sélection de la base de donnée echouée.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
$requete = "SELECT pseudo FROM $table_cp WHERE pseudo='$pseudo'";
$resultat = mysql_query($requete) or die('<br/>Exécution de la requête impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
$ligne = mysql_fetch_array($resultat);
if ($pseudo == $ligne['pseudo'])
{
?>Ce pseudo existe déja sur ce site<br/><?
$nb_faux++;
}
}
// incrémenter la variable $nb_faux si la case à cocher "conditions" est null
if (isset($_POST['conditions']) == null)
{
?>Conditions non coché<br/><?
$nb_faux++;
}
// affectation de la chaine "oui" ou "non" dans une variable pour la newsletter
if (isset($_POST['newsletter']) != null)
{
$newsletter = "oui";
}
else
{
$newsletter = "non";
}
if (isset($_POST['pays']) || isset($_POST['ville']) || isset($_POST['sexe']) || isset($_POST['jours'])
|| isset($_POST['mois']) || isset($_POST['annees']))
{
$pays = $_POST['pays'];
$ville = $_POST['ville'];
$sexe = $_POST['sexe'];
$date_naissance = ($_POST['jours']) ."/". ($_POST['mois']) ."/". ($_POST['annees']);
}
// connexion à la base de donnée si il n'y a pas d'erreur (champs oubliés, expressions régulirères, vérification de mot de passe, vérification du pseudo)
if ($nb_faux == 0)
{
include("pcdb.php");
// affecter un nombre aléatoire dans la variable clef qui servira a la validation du compte par mail
$clef = "0123456789";
$clef = rand();
// requette envoi les données de l utilisateur dans la table comptes_provisoirs
$connexion = mysql_connect($hote, $utilisateur, $mdp) or die('<br/>Connexion au serveur impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
$choix_base = mysql_select_db($data_base, $connexion) or die('<br/>Sélection de la base de donnée echouée.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
$requete = "INSERT INTO $table_cp VALUES
('', '$pseudo', '$password', '$mail', '$newsletter', '$pays', '$ville', '$sexe', '$date_naissance', '$clef')";
$resultat = mysql_query($requete) or die('<br/>Exécution de la requête impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
mysql_close($connexion);
// Envoyer le mail si la requête à fonctionnée
if ($resultat == true)
{
?>Vous allez reçevoir un mail pour la validation de votre compte<br/><?
$mail_destinataire = $_POST['mail'];
$sujet = "jeu, validation de l'inscription";
$message = "Cet email a été envoyé à partir de http://www.jeu.com Ton mot de passe est: $password \n Ton pseudo est: $pseudo
Pour valider ton inscription clique sur le lien suivant. Nous te demandons ca pour s'assurer que l'adresse mail que tu as entrée était correcte.
Ceci pour prévenir du spam et des abus.
http://127.0.0.1/mailphp/inscription.php?&pseudo=$pseudo&clef=$clef
Le Webmaster";
$head = "Salut $pseudo ";
// mail($mail_destinataire, $sujet, $message, $head);
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.monfai.com";
$mail->SMTPAuth = true;
$mail->Username = "xxxxxxxxx";
$mail->Password = "xxxxxxxx";
$mail->From = "martial_zero1981@gnet.tn";
$mail->FromName = "marouen kefi";
$mail->AddAddress($mail_destinataire );
$mail->Subject = $sujet;
$mail->Body =$message;
if(!$mail->Send()){ //Teste le return code de la fonction
echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
}
else{
echo 'Mail envoyé avec succès';
}
$mail->SmtpClose();
unset($mail);
}
}
}
//--------------------------------------------------------------------
// VALIDATION DU COMPTE APRES INSCRIPTION
//
// Verification du lien de validation via mail :
// 1 - connexion si la clef et le pseudo existe dans la table "comptes_provisoirs"
// 2 - transfert des données dans la table "comptes_definitifs"
// 3 - suppression des données dans la table "comptes_provisoirs"
//--------------------------------------------------------------------
if (isset($_GET['pseudo']) && isset($_GET['clef']))
{
$pseudo = $_GET['pseudo'];
$clef = $_GET['clef'];
//echo $pseudo;
include("pcdb.php");
// requette chercher les données lorsque le champs pseudo et le champs clef existent dans la table "comptes_provisoirs"
$connexion = mysql_connect($hote, $utilisateur, $mdp) or die('<br/>Connexion au serveur impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
$choix_base = mysql_select_db($data_base, $connexion) or die('<br/>Sélection de la base de donnée echouée.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
$requete = "SELECT pseudo, password, mail, newsletter, pays, ville, sexe, date_naissance FROM $table_cp WHERE pseudo = '$pseudo' AND clef = '$clef'";
$resultat = mysql_query($requete) or die('<br/>Exécution de la requête impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
// affecter les infos utilisateurs si la clef et le pseudo existent dans la table "comptes_provisoirs"
if($donnees = mysql_fetch_array($resultat))
{
$pseudo = $donnees['pseudo'];
$password = $donnees['password'];
$mail = $donnees['mail'];
$newsletter = $donnees['newsletter'];
$pays = $donnees['pays'];
$ville = $donnees['ville'];
$sexe = $donnees['sexe'];
$date_naissance = $donnees['date_naissance'];
// requette transferer les données de la table "comptes_provisoirs" à la table "comptes_definitifs"
$requete = "INSERT INTO $table_cd VALUES('', '$pseudo', '$password', '$mail', '$newsletter', '$pays', '$ville', '$sexe', '$date_naissance')";
$resultat = mysql_query($requete) or die('<br/>3 Exécution de la requête impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
// requette suppression des données provisoir de la table "comptes_definitifs"
$requete = "DELETE FROM $table_cp WHERE clef = '$clef' AND pseudo = '$pseudo'";
$resultat = mysql_query($requete) or die('<br/>Exécution de la requête impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
mysql_close($connexion);
?>Votre compte est validé<br/><?
}
else
{
?>Votre compte est deja validé ou le lien de validation est incorrect<br/><?
}
}
?>
<link rel="stylesheet" media="screen" type="text/css" title="index" href="includes.css" />
<form action="inscription.php" method="post">
Inscription :
<fieldset>
<legend>Infos obligatoires</legend>
<table>
<tr><td>Pseudo :</td><td><input type="text" name="pseudo"/ size="9"></td></tr>
<tr><td>Mot de passe :</td><td><input type="password" name="password" size="9"/></td></tr>
<tr><td>Confirmer le mot de passe :</td><td><input type="password" name="confirm_password" size="9"/></td></tr>
<tr><td>Mail :</td><td><input type="text" name="mail"/ size="15"></td></tr>
</table>
<input type="checkbox" name="conditions"/> J'ai lu et j'accepte les conditions générales d'utilisation de titre (trouver un nom) .<br/>
<input type="checkbox" name="newsletter" checked="checked"/> Je souhaite recevoir la newletter dans ma boite mail .
</fieldset>
<fieldset>
<legend>Infos personelles</legend>
<table>
<tr><td>Pays :</td><td width="170"><input type="text" name="pays" size="15" value="vide"/></td><td>
Sexe : <input type="radio" name="sexe" value="homme"/> Homme <input type="radio" name="sexe" value="femme"/> Femme <input type="radio" name="sexe" value="assexué" checked="checked"/> Assexué</td></tr>
<tr><td>Ville :</td><td width="170"><input type="text" name="ville" size="15" value="vide"/></td><td>
Date de naissance : <select name="jours">
<option></option><option value="01">01</option><option value="02">02</option><option value="03">03</option><option value="O4">04</option><option value="05">05</option><option value="06">06</option><option value="07">07</option><option value="08">08</option><option value="09">09</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option>
</select> /
<select name="mois">
<option></option><option value="01">01</option><option value="02">02</option><option value="03">03</option><option value="O4">04</option><option value="05">05</option><option value="06">06</option><option value="07">07</option><option value="08">08</option><option value="09">09</option><option value="10">10</option><option value="11">11</option><option value="12">12</option>
</select> /
<select name="annees">
<option></option><option value="1987" >1987</option><option value="1986" >1986</option><option value="1985" >1985</option><option value="1984" >1984</option><option value="1983" >1983</option><option value="1982" >1982</option><option value="1981" >1981</option><option value="1980" >1980</option><option value="1979" >1979</option><option value="1978" >1978</option><option value="1977" >1977</option><option value="1976" >1976</option><option value="1975" >1975</option><option value="1974" >1974</option><option value="1973" >1973</option><option value="1972" >1972</option><option value="1971" >1971</option><option value="1970" >1970</option><option value="1969" >1969</option><option value="1968" >1968</option><option value="1967" >1967</option><option value="1966" >1966</option><option value="1965" >1965</option><option value="1964" >1964</option><option value="1963" >1963</option><option value="1962" >1962</option><option value="1961" >1961</option><option value="1960" >1960</option><option value="1959" >1959</option><option value="1958" >1958</option><option value="1957" >1957</option><option value="1956" >1956</option><option value="1955" >1955</option><option value="1954" >1954</option><option value="1953" >1953</option><option value="1952" >1952</option><option value="1951" >1951</option><option value="1950" >1950</option><option value="1949" >1949</option><option value="1948" >1948</option><option value="1947" >1947</option><option value="1946" >1946</option><option value="1945" >1945</option><option value="1944" >1944</option><option value="1943" >1943</option><option value="1942" >1942</option><option value="1941" >1941</option><option value="1940" >1940</option><option value="1939" >1939</option><option value="1938" >1938</option><option value="1937" >1937</option><option value="1936" >1936</option><option value="1935" >1935</option>
</select></td></tr>
</table>
</fieldset>
<input type="submit" value="Valider"/>
</form>
|
|
jeudi 20 août 2009 à 03:12:32 |
Re : validation d une inscription par mail

martiallover
|
l erreur est très microscopique
voilà
a la place mon editeur affiche & à la place de &
il suffisait de les remplacer et ca fonctionne parfaitement
http://127.0.0.1/mailphp/inscription.php?&pseudo=$pseudo&clef=$clef
bon travail pour tout le monde .
|
|
Cette discussion est classée dans : mail, table, mysql, pseudo, webmaster
Répondre à ce message
Sujets en rapport avec ce message
Pouquoi ça marche pas??? [ par jcdc ]
je voudrais gérer une inscription dans une base MySQL. A chaque saisie je test le mail, et le pseudo pour ne pas faire de doublon. La premiere inscrip
n'actualise pas dans sql ! [ par zut69 ]
Bonjour,je suis en train de faire la partie admin de mon site à espace membre. J'ai une page pour changer les infos des membres, mais quand je modifie
trouve pas l'erreur ! [ par zut69 ]
Bonjour,Voilà, j'ai un problème, j'ai téléchargé un espace membres sur le net, très bien d'ailleurs, et j'ai essayé de le modifier pour qu'il m'affich
problème dans un formulaire d'envoi de mail avec identification [ par Broack Dincht ]
bonjour à tous et toutesj'ai un blème avec un code php.J'ai fais des codes ayant pour but d'identifier une parsonne afin de lui permettre d'envoyer un
problème avec chekbox [ par 01cod10 ]
salut à tous,Un problème avec mes checkbox envoyés dans ma table. Un seul choix apparait dans ma table de plus je n'arrive pas à afficher les loisirs
Envoie de mail avec mysql [ par lycol ]
Bonjour, je voudrais savoir comment envoyer un mail directement à quelqu'un avec a l'interieures les pseudo, mot de passe... d'un membre logué dans sa
Vérificateur de changement de données [ par givit ]
Bonjour @ tous,Je sais, c'est encore moi ... J'ai un petit souci avec un formulaire de modification de données. Il n'affiche rien lorsqu'il y
problème mysql [ par nicomilville ]
comment faire pour récupérer les données de ce formulaire, je m'explique : j'ai un select multiple et je souhaiterais afficher les valeur selectionner
Validation par email [ par bernhardjo ]
Bonjour, Je cherche a faire une validation par email pour les utilisateurs puissent devenir membre. J'ai passablement de petit problème, notamment a
quelqun peut me corriger ça -merci- [ par poponet ]
[color=blue][b]Inscription.php[/b][u][/u][/color] <?php //---------------------------------
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|