begin process at 2012 05 31 19:09:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

validation d une inscription par mail


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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?&amp;pseudo=$pseudo&amp;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 &amp; à la place de &
il suffisait de les remplacer et ca fonctionne parfaitement
http://127.0.0.1/mailphp/inscription.php?&amp;pseudo=$pseudo&amp;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 //---------------------------------


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales