Bonjour à vous ! ^^

Je viens vous voir pour vous demander de l'aide !
En effet, pour m'entrainer, je fais un petit espace membre, rien de complexe pour vous, mais pour moi qui débute, c'est une autre perd de manche ! ^^

Donc, au moment de l'inscription, j'ai un formulaire a remplir qui une fois validée renvoie sur la meme page pour envoyer les données dans la BDD. Après avoir validée le formulaire, on me dit que c'est bon, mais je ne vois pas d'insertion dans la BDD ...

Voici la page inscription.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
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
<?php
include('../Includes/configuration.php');
 
/********Entête et titre de page*********/
$titre = 'Inscription';
include('../Includes/header.php'); //contient le doctype, et head.
/**********Fin entête et titre***********/
?>
 
<div id="colonne_gauche">
				<?php
				/*include('includes/colg.php')*/;
				?>
			</div>
 
			<div id="contenu">
				<div id="map">
                <a href="<?php echo ROOTPATH;?>/index.php">Accueil</a> => <a href="<?php echo ROOTPATH;?>/membres/inscription.php">Inscription </a>
				</div>
<!-- Début du milieu de page -->
 
<?php
//On verifie que le formulaire a ete envoye
if(isset($_POST['membre_pseudo'], $_POST['mdp'], $_POST['mdpverif'], $_POST['email'], $_POST['date_naissance'], $_POST['sexe']) and $_POST['membre_pseudo']!='')
{
        //On enleve lechappement si get_magic_quotes_gpc est active
        if(get_magic_quotes_gpc())
        {
                $_POST['membre_pseudo'] = stripslashes(trim($_POST['membre_pseudo']));
                $_POST['mdp'] = stripslashes(trim($_POST['mdp']));
                $_POST['mdpverif'] = stripslashes(trim($_POST['mdpverif']));
                $_POST['email'] = stripslashes(trim($_POST['email']));
				$_POST['date_naissance'] = stripslashes(trim($_POST['date_naissance']));
				$_POST['sexe'] = stripslashes(trim(trim($_POST['sexe'])));
        }
        //On verifie si le mot de passe et celui de la verification sont identiques
        if($_POST['mdp']==$_POST['mdpverif'])
        {
                //On verifie si le mot de passe a 6 caracteres ou plus
                if(strlen($_POST['mdp'])>=6)
                {
                        //On verifie si lemail est valide
                        if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
                        {
 
				//On echape les variables pour pouvoir les mettre dans une requette SQL
				$membre_id = '';
				$membre_pseudo = $_POST['membre_pseudo'];
				$mdp = $_POST['mdp'];
				$email = $_POST['email'];
				$date_naissance = $_POST['date_naissance'];
				$sexe = $_POST['sexe'];
				$date_inscription = date("Y-m-d");
				$date_derniere_visite = '';
				$membre_rang = '';
 
 
				//On vérifie si lemail est déjà utilisé 
				$sql = $bdd->prepare('SELECT COUNT(*) FROM membres WHERE email = ?');
				$sql->execute(array($_POST['email']));
				if ($sql->fetchColumn() == 0)
                                {
					$sql = $bdd->prepare('SELECT COUNT(*) FROM membres WHERE membre_pseudo = ?');
					$sql->execute(array($_POST['membre_pseudo']));
					if ($sql->fetchColumn() == 0)
 
						//On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis
						$sql = $bdd->prepare('SELECT COUNT(*) FROM membres WHERE membre_pseudo = ?');
						$sql->execute(array($_POST['membre_pseudo']));
						if ($sql->fetchColumn() == 0)
						{
 
                                        		//On enregistre les informations dans la base de donnee
                                        		if ( $req = $bdd->prepare('
								INSERT INTO membres(membre_id, membre_pseudo, mdp, email, date_naissance, sexe, date_inscription, date_derniere_visite, membre_rang) 
								VALUES (:membre_id, :membre_pseudo, :mdp, :email, :date_naissance, :sexe, :date_inscription, :date_derniere_visite, :membre_rang)') 
								or exit(print_r($req->errorInfo()))    
								&&                             
								$req->execute(array(
									':membre_id' => $membre_id,
									':membre_pseudo' => $membre_pseudo,
									':mdp' => $mdp,
									':email' => $email,
									':date_naissance' => $date_naissance,
									':sexe' => $sexe,
									':date_inscription' => $date_inscription,
									':date_derniere_visite' => $date_derniere_visite,
									':membre_rang' => $membre_rang,
							)))
 
										{
                                                	//Si ca a fonctionne, on naffiche pas le formulaire
                                                	$form = false;
?>
<div class="message">Vous avez bien &eacute;t&eacute; inscrit. Vous pouvez dor&eacute;navant vous connecter.<br />
<a href="connexion.php">Se connecter</a></div>
<?php
                                        }
                                        else
                                        {
                                                //Sinon on dit quil y a eu une erreur
                                                $form = true;
                                                $message = 'Une erreur est survenue lors de l\'inscription.';
                                        }
				}
				else
				{
                                        //Sinon, on dit que le pseudo voulu est deja pris
                                        $form = true;
                                        $message = 'Un autre utilisateur utilise d&eacute;j&agrave; le nom d\'utilisateur que vous d&eacute;sirez utiliser.';
				}
			}
			else
			{
				//Sinon, on dit que lemail voulu est deja pris
				$form = true;
				$message = 'Un autre utilisateur utilise d&eacute;j&agrave; lemail que vous d&eacute;sirez utiliser.';
			}	
		}
		else
		{
			//Sinon, on dit que lemail nest pas valide
			$form = true;
			$message = 'L\'email que vous avez entr&eacute; n\'est pas valide.';					
		}
	}
	else
	{
		//Sinon, on dit que le mot de passe nest pas assez long
		$form = true;
		$message = 'Le mot de passe que vous avez entr&eacute; contien moins de 6 caract&egrave;res.';
	}
       }
        else
        {
                //Sinon, on dit que les mots de passes ne sont pas identiques
                $form = true;
                $message = 'Les mots de passe que vous avez entr&eacute; ne sont pas identiques.';
 
        }
}
else
{
        $form = true;
}
if($form)
{
        //On affiche un message sil y a lieu
        if(isset($message))
        {
                echo ' <div class="message">'. $message .'</div>' ;
        }
        //On affiche le formulaire
?>
 
<div class="content">
    <form action="inscription.php" method="post">
        Veuillez remplir ce formulaire pour vous inscrire:<br />
        <div class="center">
            <label for="membre_pseudo">Pseudo :</label>
			<input type="text" name="membre_pseudo" placeholder="Entrez un pseudo" value="<?php if(isset($_POST['membre_pseudo'])){echo htmlentities($_POST['membre_pseudo'], ENT_QUOTES, 'UTF-8');} ?>" required /><br />
 
            <label for="mdp">Mot de passe<span class="small">(6 caract&egrave;res min.)</span></label>
			<input type="password" name="mdp" placeholder="Entrez un mot de passe" value="<?php if(isset($_POST['mdp'])){echo htmlentities($_POST['mdp'], ENT_QUOTES, 'UTF-8');} ?>" required /><br />
 
            <label for="mdpverif">Mot de passe<span class="small">(v&eacute;rification)</span></label>
			<input type="password" name="mdpverif" placeholder="Vérification du mdp" value="<?php if(isset($_POST['mdpverif'])){echo htmlentities($_POST['mdpverif'], ENT_QUOTES, 'UTF-8');} ?>" required /><br />
 
            <label for="email">Email</label>
			<input type="email" name="email" placeholder="Entrez votre email" value="<?php if(isset($_POST['email'])){echo htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8');} ?>" required /><br />
 
			<label for="date_naissance">Date de naissance</label>
			<input type="date" name="date_naissance" value="<?php if(isset($_POST['date_naissance'])){echo htmlentities($_POST['date_naissance'], ENT_QUOTES, 'UTF-8');} ?>" required /><br />
 
			<label for="sexe">Sexe</label>
				<select name="sexe">
					<option value="1">Homme</option>
					<option value="2">Femme</option>
				</select ><br />
 
            <input type="submit" value="Envoyer" />
        </div>
    </form>
</div>
 
<?php
}
?>	
 
 
<!-- Fin du milieu de page -->				
			</div>
<?php 
include('../Includes/footer.php');
?>
Mon erreur doit se situer à partir de la ligne 74 ...
J'ai tenté de modifier mon insertion :
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
if ( $req = $bdd->prepare('
	INSERT INTO membres(membre_id, membre_pseudo, mdp, email, date_naissance, sexe, date_inscription, date_derniere_visite, membre_rang) 
	VALUES (:membre_id, :membre_pseudo, :mdp, :email, :date_naissance, :sexe, :date_inscription, :date_derniere_visite, :membre_rang)') 
	or exit(print_r($req->errorInfo()))    
	&&                             
	$req->execute(array(
		':membre_id' => $membre_id,
		':membre_pseudo' => $membre_pseudo,
		':mdp' => $mdp,
		':email' => $email,
		':date_naissance' => $date_naissance,
		':sexe' => $sexe,
		':date_inscription' => $date_inscription,
		':date_derniere_visite' => $date_derniere_visite,
		':membre_rang' => $membre_rang,
	)))
 
	{
ETC
Par ceci :
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
 
if ( $sql = $bdd->prepare
	('INSERT INTO membres(membre_id, membre_pseudo, mdp, email, date_naissance, sexe, date_inscription, date_derniere_visite, membre_rang) 
	VALUES (:membre_id, :membre_pseudo, :mdp, :email, :date_naissance, :sexe, :date_inscription, :date_derniere_visite, :membre_rang)') 
	&&
	$sql->bindParam(':membre_id', $membre_id)
	&&
	$sql->bindParam(':membre_pseudo', $membre_pseudo)
	&&
	$sql->bindParam(':mdp', $mdp)
	&&
	$sql->bindParam(':email', $email)
	&&
	$sql->bindParam(':date_naissance', $date_naissance)
	&&
	$sql->bindParam(':sexe', $sexe)
	&&
	$sql->bindParam(':date_inscription', $date_inscription)
	&&
	$sql->bindParam(':date_derniere_visite', $date_derniere_visite)
	&&
	$sql->bindParam(':membre_rang', $membre_rang)
	&&
	$sql->execute() or exit(print_r($bdd->errorInfo())))
{
ETC
Mais avec le deuxième code, j'ai une erreur :
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\wamp\www\Site\Membres\inscription.php on line 96
(la ligne 96 eest : $sql->execute() or exit(print_r($bdd->errorInfo()))) )

Du coup, je ne comprends pas du tout ce qui ne vas pas, ni dans le cas 1, ni dans le cas 2 !

Auriez vous des idées, indications, conseils, suggestions, corrections ?

Merci par avance de votre lecture, et peut être de vos réponses !