Bonjour à tous. je développe un site et je gere un espace membre pour lequel j'ai créé un formulaire d'inscription.
et après l'inscription le membre reçois un mail avec un lien pour valider (activer) son compte.
le formulaire marche très bien et le mail est aussi envoyé à l'adresse fournie pendant l'inscription.

mon problème c'est que la validation ne réussi pas. donc je vous demande de l'aide

voici le script php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
<?php                                                        //--------------------------------------------------------------------------------
														
// Envoi des données dans la table "membre" si les conditions sont remplies
// -------------------------------------------

// variable initialisée à zero pour tester les conditions
$nb_faux = 0;

if (isset($_POST['login']) && isset($_POST['passe']) && isset($_POST['confirm']) && isset($_POST['email']))
{
 $login=$_POST['login'];
 $passe=$_POST['passe'];
 $confirm = $_POST['confirm'];
 $email = $_POST['email'];
 
	// incrémenter la variable $nb_faux si les champs du formulaire sont  vides 
    if (empty($_POST['login'])  || empty($_POST['passe']) || empty($_POST['confirm']) || empty($_POST['email']))
    {         
     ?><p>Champs non remplis</p><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})$`', $login))
    {
     ?><p>Caractères non autorisés pour le nom d'utilisateur</p><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})$`', $passe) or !preg_match('`^(\w{4,15})$`', $confirm ))	
	{
	 ?><p>Caractères non autorisés pour le mot de passe</p><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 ($passe != $confirm)
	{
	 ?><p>Mauvais Mot de passe</p><br/><?
     $nb_faux++;
	}
	
	// incrementer la variable $nb_faux si le pseudo existe dans la base de donnée
	if ($nb_faux >= 0)
	{
	
	 $requete = "SELECT login FROM $table_connect WHERE login='$login'";
	 $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 ($login == $ligne['login'])
	    {
	     ?><p>Ce pseudo existe déja sur ce site</p><br/><? 
	     $nb_faux++;
	    }
	}
	
    //  incrémenter la variable $nb_faux si la case à cocher "conditions"  est null         
    if (isset($_POST['cgu']) == null)
    {
     ?><p>Vous devez acceptez les conditions d'utilisation</p><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['phone']) || isset($_POST['nom']) || isset($_POST['sexe']) || isset($_POST['jour']) 
	|| isset($_POST['mois']) || isset($_POST['annee']))
    {   
	 $nom = $_POST['nom'];
     $phone = $_POST['phone'];
     $sexe = $_POST['sexe'];
     $date = ($_POST['jour']) ."/". ($_POST['mois']) ."/". ($_POST['annee']);
	$prenom=$_POST['prenom'];
	$lieu=$_POST['lieu'];
	$civilite=$_POST['civilite'];
	$postal=$_POST['postal'];
	$job=$_POST['job'];
	$division=$_POST['division'];
	$unite=$_POST['unite'];
	$groupe=$_POST['groupe'];
	$district=$_POST['district'];
	$fonction=$_POST['fonction'];
	$newsletter=$_POST['newsletter'];
		}
  
    // 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) 
    {   
   
	 // 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
     
     $requete = "INSERT INTO membre 
(IDmembre, nom, prenom, date_naissance, lieu_naissance, civilite, sexe, email, telephone, boite_postale, profession,
division, unite, groupe, district, fonction, login, password,newsletter) 
VALUES ('$clef', '$nom', '$prenom', '$date', '$lieu', '$civilite', '$sexe', '$email', '$phone', '$postal', '$job', '$division', '$unite', '$groupe', '$district', '$fonction', '$login', '$passe', '$newsletter')";

$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/>');
	 
	    // Envoyer le mail si la requête à fonctionnée
	    if ($resultat == true)
		{
	     ?><p>Merci pour votre pré-inscription. <br />Vous allez reçevoir un mail pour la validation de votre compte à l'adresse
         <strong><?php echo $_POST['email']; ?></strong><br/></p><?
		 
		 $mail_destinataire = $_POST['email'];             
         $sujet = "Saci, validation de l'inscription";
         $message = "Cet email a été envoyé à partir de http://www.scoutafriqueci.org \n
		  Ton mot de passe est: $passe \n 
		  Ton login est: $login \n
          Pour valider ton inscription clique sur le lien suivant. Nous te demandons ça  pour s'assurer que l'adresse mail que tu as entrée était correcte. Ceci pour prévenir du spam et des abus. \n
		 http://www.scoutafriqueci.org/membre/reg.php?login=$login&amp;IDmembre=$clef
		
		 Le Webmaster";
         $head = "Salut $login ";
         mail($mail_destinataire, $sujet, $message, $head);
        }
   } 
}

//--------------------------------------------------------------------
// VALIDATION DU COMPTE APRES INSCRIPTION
//
// Verification du lien de validation via mail :
//  - connexion  si la clef et le pseudo existe dans la table "membre"
//--------------------------------------------------------------------

if (isset($_GET['login']) && isset($_GET['clef']))
{
 $login = $_GET['login'];
 $clef = $_GET['clef'];

	
	 
 // requette chercher les données lorsque le champs pseudo et le champs clef existent dans la table "membr"
                                                           
 $requete = "SELECT * FROM $table_connect WHERE login ='$login' AND IDmembre = '$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['login'];
	 $password = $donnees['password'];
	 $mail = $donnees['email'];
	 $newsletter = $donnees['newsletter'];
	 $nom = $donnees['nom'];
	 $phone = $donnees['phone'];
	 $sexe = $donnees['sexe'];
	 $date_naissance = $donnees['date_naissance'];
	 
	 
	 $requete = "UPDATE membre SET  
	 compte_actif='Oui', date_reg='".date("d/m/Y")." ".date("H:i:s")."' WHERE IDmembre='$clef' AND login='$pseudo'";
	 $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/>');
    
	
	 ?><p>Votre compte est validé. Vous pouvez maintenant vous connectez.<br/>
     <? 
	}
	else
	{
	 ?><p>Votre compte est deja validé ou le lien de validation est incorrect</p><br/><?
	}
}
 mysql_close(); 
?>