insertion dans base depuis formulaire

Eléphant du PHP | 66 Messages

08 mai 2007, 13:41

Bonjour,

J'ai créé un formulaire qui envoi des données dans une base il ressemble a ça :

Code : Tout sélectionner

<form action="envoi_joueur.php" method="post"> <td align="left" width="236"><font class="info">Nom joueur : </font></td> <td align="left"><input name="nom_j" type="text" size="35"/></td> </tr> </table><br /> <table width="600" border="0"> <tr> <td align="left" width="236"><font class="info">Prénom joueur : </font></td> <td align="left"><input name="prenom_j" type="text" size="35"/></td> </tr> </table><br /> <table width="600" border="0"> <tr> <td align="left" width="236"><font class="info">Login joueur : </font></td> <td align="left"><input name="login_j" type="text" size="35"/></td> </tr> </table><br /> <table width="600" border="0"> <tr> <td align="left" width="236"><font class="info">Pass joueur : </font></td> <td align="left"><input name="pass_j" type="text" size="35"/></td> </tr> </table><br /> <table width="600" border="0"> <tr> <td align="left"><font class="info">Vérification pass joueur : </font></td> <td align="left"><input name="verif_pass_j" type="text" size="35"/></td> </tr> </table><br /> <table width="600" border="0"> <tr> <td align="center"><input name="envoi_register" type="submit" value="Enregistrer le joueur" /></td> </form>
Donc une fois rempli quand on clique sur le bouton ca envoi là dans une page (envoi_joueur) qui contient ce code :

Code : Tout sélectionner

<?php include "connexion.inc"; $requete = "INSERT INTO joueur VALUES ('', '".$nom_j."', '".$prenom_j."', '".$login_j."', '".$pass_j."', '".$verif_pass_j."')"; ?>
Le problème c'est que ca ne marche pas ca me donne ce message d'erreur :

Code : Tout sélectionner

Notice: Undefined variable: nom_j in c:\ngadd\envoi_joueur.php on line 4 Notice: Undefined variable: prenom_j in c:\ngadd\envoi_joueur.php on line 4 Notice: Undefined variable: login_j in c:\ngadd\envoi_joueur.php on line 4 Notice: Undefined variable: pass_j in c:\ngadd\envoi_joueur.php on line 4 Notice: Undefined variable: verif_pass_j in c:\ngadd\envoi_joueur.php on line 4
si qqun voit le problème merci de m'aider.

Et je voulais savoir comment faire pour vérifier que le formulaire est bien rempli et que le pass est bien deux fois le même.

Merci d'avance

Eléphanteau du PHP | 16 Messages

08 mai 2007, 13:51

En fet je crois que le problemme vien du fet que sur la page envoi_joueur

les variables que tu utilise dans la requette n'existent pas ($nom_j, $prenom_j etc)

il faut donc recuperer le données que tu a poster avec le bouton d'envois et les associer a des variables semblables
$prenom_j=$_POST['prenom_j'];//le deuxieme prenom_j est le nom sous lequel il a été envoyer depuis la page d'avant
<input name="prenom_j" type="text" size="35"/>
il te faut maintenant le faire pour nom_j et etc.

Petit nouveau ! | 7 Messages

08 mai 2007, 13:53

Salut
Alors quand tes donnees arrive de ton formulaire il faut d'abord les recupere
Donc tu definie une variable
$pseudo = mysql_real_escape_string($_POST['pseudo']);
Tu doit pour toutes les variables que tu recois
Il y a d'autres façon que mysql_escape_string mais perso moi je la trv bien

Apres tu lui demande si tes champs voulu sont vides ou pas
if (empty($pseudo) || empty($pass) || empty($email))
	{
echo 'Des champs n\'ont pas été remplis.';
	exit();
	}
Tient pour lui demander si tes 2 pass correspondent
if( $pass != $verif_pass) //On verifie que les 2 pass sont identiques
			{
echo 'Les mots de passe ne sont pas identiques !</p>';
exit(); 
} 
Voila apres tu fait ton insertion

J'espere que sa va t'aider ++

Eléphant du PHP | 66 Messages

08 mai 2007, 14:07

merci bien j'essai ca de suite

Eléphant du PHP | 66 Messages

08 mai 2007, 14:19

Toutes les conditions sont bonnes mais ca n'envoi pas dans ma base
voila la nouvelle page d'envoi et mais header posent problèmes je ne voi pas pourquoi.

il me met ce message quand je met des header a la place des exit();

Code : Tout sélectionner

Warning: Cannot modify header information - headers already sent by (output started at c:\ngadd\envoi_joueur.php:12) in c:\ngadd\envoi_joueur.php on line 13

Code : Tout sélectionner

<?php include "connexion.inc"; $nom = mysql_real_escape_string($_POST['nom_j']); $prenom = mysql_real_escape_string($_POST['prenom_j']); $login = mysql_real_escape_string($_POST['login_j']); $pass = mysql_real_escape_string($_POST['pass_j']); $verif = mysql_real_escape_string($_POST['verif_pass_j']); if (empty($nom) || empty($prenom) || empty($login) || empty($pass) || empty($verif)) { echo 'Des champs n\'ont pas été remplis.'; exit(); } else if ( $pass != $verif) //On verifie que les 2 pass sont identiques { echo 'Les mots de passe ne sont pas identiques !</p>'; exit(); } else { $requete = "INSERT INTO joueur VALUES ('', '".$nom."', '".$prenom."', '".$login."', '".$pass."', '".$verif."')"; } ?>
[/code]
Modifié en dernier par Z3lg4dis le 08 mai 2007, 14:25, modifié 1 fois.

Eléphanteau du PHP | 16 Messages

08 mai 2007, 14:24

Parceque tu execute pas la requete

rajoute
mysql_query($requete) or die("erreur".mysql_error());

Eléphant du PHP | 66 Messages

08 mai 2007, 14:26

merci par contre les headers sont chiant et je voudrais renvoyer au formulaire quand il y a une erreur.

Petit nouveau ! | 7 Messages

08 mai 2007, 14:28

oue rajoute se que vient de dire manix juste apres ta requete et enleve tes exit comme sa tu vera le message

Et pour renvoyer utilise des metatags regarde sur le site de phpfrance dans redirection

Eléphant du PHP | 66 Messages

08 mai 2007, 14:29

oki merci c bon tous marche