insertion dans base depuis formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : insertion dans base depuis formulaire

par Z3lg4dis » 08 mai 2007, 14:29

oki merci c bon tous marche

par guisxou » 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

par Z3lg4dis » 08 mai 2007, 14:26

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

par manix » 08 mai 2007, 14:24

Parceque tu execute pas la requete

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

par Z3lg4dis » 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]

par Z3lg4dis » 08 mai 2007, 14:07

merci bien j'essai ca de suite

par guisxou » 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 ++

par manix » 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.

insertion dans base depuis formulaire

par Z3lg4dis » 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