pb envoi bdd

Eléphant du PHP | 94 Messages

06 juin 2010, 11:19

bonjour,
j'ai trouvé un tuto "type espace membre" qui permet l'inscription avec mot de passe + envoi des élément sur bdd, mais cela fonctionne pour partie mais lorsque je rajote des champs celan ne s'envoi pas sur bdd. il me met l'erreur suivante:
Notice: Undefined variable: prenom in C:\Program Files\EasyPHP-5.3.1\www\site\verification2.php on line 73
Merci de vous vous etre inscrit à Mon site.com
Identifiez vous !


par avance merci pour votre aide

voici les codes utilisés :
session_start();
require_once('config.php');
$titre_page='Inscription';
include_once('haut.php');
?><form method='post' action='verification2.php' enctype='multipart/form-data'>	
	<table width="400" border="0">
	<tr>
	<td colspan="2" class="menu">Inscription</td>
	</tr>
	<tr>
	<td><label for="pseudo">Pseudo : </label></td>
	<td><input name="pseudo" type="text" id="pseudo" /></td>
	</tr>
	<tr>
	<td><label for="email">E-mail : </label></td>
	<td><input name="email" type="text" id="email" /></td>
	</tr>
	<tr>
	<td><label for="nom">nom : </label></td>
	<td><input name="nom" type="text" id="nom" /></td>
	</tr>
	<tr>
	<td><label for="prenom">prenom : </label></td>
	<td><input name="prenom" type="text" id="prenom" /></td>
	</tr>
	<tr>
	<td><label for="Adresse">Adresse : </label></td>
	<td><input name="Adresse" type="text" id="Adresse" /></td>
	</tr>
	<tr>
	<td><label for="comp">Complément adresse : </label></td>
	<td><input name="Comp" type="text" id="Comp" /></td>
	</tr>
	<tr>
	<td><label for="code">Code postal: </label></td>
	<td><input name="Code" type="text" id="Code" /></td>
	</tr>
	<tr>
	<td><label for="ville">Ville: </label></td>
	<td><input name="Ville " type="text" id="Ville" /></td>
	</tr>
	<tr>
	<td><label for="mdp">Mot de passe : </label></td>
	<td><input name="mdp" type="password" id="mdp" /></td>
	</tr>
	<tr>
	<td><label for="mdp2">Confirmation du mot de passe : </label></td>
	<td><input name="mdp2" type="password" id="mdp2" /></td>
	</tr>
	<tr>
	<td><label for="nom2">nom 2: </label></td>
	<td><input name="nom2" type="text" id="nom2" /></td>
	</tr>
	<tr>
	<td><label for="prenom2">Prénom2 : </label></td>
	<td><input name="prenom2" type="text" id="prenom2" /></td>
	</tr>
	<tr>
	<td><label for="Adresse2">Adresse2 : </label></td>
	<td><input name="Adresse2" type="text" id="Adresse2" /></td>
	</tr>
	<tr>
	<td><label for="comp2">Complément adresse 2: </label></td>
	<td><input name="Comp2" type="text" id="Comp2" /></td>
	</tr>
	<tr>
	<td><label for="code2">Code postal2: </label></td>
	<td><input name="Code2" type="text" id="Code2" /></td>
	</tr>
	<tr>
	<td><label for="ville2">Ville2: </label></td>
	<td><input name="Ville2" type="text" id="Ville2" /></td>

	<tr>
	<td><div align="center"><input type="submit" value="Enregistrer" /></div></td>
	</tr>
	</table>
	</form>
	</div>
	<a href="page1.php">Retour</a>
<?php
include_once('bas.php');
?>
et la suite :
<?php
/* Script écrit par RVJ-WEB
Créé le 27 MAI 2006
Droits de reproduction autorisés */

session_start();
require_once('config.php');
$titre_page='Inscription';
include_once('haut.php');
$email=formulaires($_POST['email']);
$pseudo=formulaires($_POST['pseudo']);
$mdp=formulaires($_POST['mdp']);
$mdp2=formulaires($_POST['mdp2']);

//// VERIFICATIONS BANALES ////
if(!$mdp || !$mdp2 || strlen($mdp) < 5)
	{
	echo'Votre mot de passe ou sa confirmation est inexisant ou votre mot de passe fait moins de 5 carractères<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
	include_once('bas.php');
return FALSE;
	}
if($mdp!=$mdp2)
	{
	echo'Votre mot de passe n\'est pas le meme que sa confirmation<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
	include_once('bas.php');
return FALSE;
	}
if(!$pseudo || strlen($pseudo) > 15)
	{
	echo'Votre pseudo est inexisant ou fait plus de 15 carractères<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
	include_once('bas.php');
return FALSE;
	}
if(!$email)
   	{
	echo'Votre e-mail est innexistant.<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
	include_once('bas.php');
return FALSE;
   	}
$nom = $_POST['nom']; 
if(empty($nom))
{
print("<center>Le '<b>nom</b>' est vide !</center>");
exit();
} 
	
//// VERIFICATIONS DES EXISTANCES ////
$reponse_mail=mysql_query("SELECT email FROM membres WHERE email='$email'") or die ('Erreur : '.mysql_error());	//verification si e-mail existe déjà
$count_mail=mysql_num_rows($reponse_mail);
if($count_mail == 1)
	{
	echo'Cet e-mail existe déjà.<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
	include_once('bas.php');
return FALSE;
	}
$reponse_pseudo=mysql_query("SELECT pseudo FROM membres WHERE pseudo='$pseudo'") or die ('Erreur : '.mysql_error());	//verification si pseudo existe déjà
$count_pseudo=mysql_num_rows($reponse_pseudo);
if($count_pseudo == 1)
	{
	echo 'Ce pseudo existe déjà.<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
	include_once('bas.php');
return FALSE;
	}
		
	for ($ligne=0;$ligne<30;$ligne++)		//Création d'un identifiant aléatoire
		{
		@$session.=substr('0123456789AZERTYUIOPMLKJHGFDSQWXCVBN',(rand()%(strlen('0123456789AZERTYUIOPMLKJHGFDSQWXCVBN'))),1);
		}

		$mdp=md5($mdp);		//Codage du mot de passe
		mysql_query("INSERT INTO membres VALUES ('','$session','$pseudo','$mdp','$email','$nom','$prenom' )") or die ('Erreur : '.mysql_error());	//insertion dans la bdd
echo'Merci de vous vous etre inscrit à '.$nom_du_site.'<br /><a href="index.php">Identifiez vous !</a>';
include_once('bas.php');

Eléphant du PHP | 94 Messages

06 juin 2010, 11:23

juste pour info dans mon exemple j'ai juste rajouté les champs nom et prénom pour l'envoi de bdd seul le prenom et reporté dans la bdd.
ensuite je souhaite rajouter l'ensemble des champs annoncé sur le code 1.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 juin 2010, 12:50

Ton problème vient du fait qu'à la ligne 73, tu fais appel à la variable $prenom dans ta requête, alors que celle-ci n'a pas été définie précédemment. PHP renvoi donc un avertissement.

Pour récupérer le pseudo saisi dans le formulaire, tu fais appel à " formulaires($_POST['pseudo']); " au début de ton code. A priori, il te faudrait donc faire de même pour déclarer tes variables nom et prenom et récupérer leurs valeurs depuis le formulaire :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 94 Messages

06 juin 2010, 12:56

un grand merci ça fait au moins 2 heures que je me prenais la tête et j'avais complètement zapé cette variable.
=D>