[PHP] formulaire d'inscription

Fermé
kykyboogy Messages postés 4 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 13 janvier 2009 - 13 janv. 2009 à 01:22
 php - 13 janv. 2009 à 18:42
Bonjour,

Voilà je suis entrain de faire un formulaire d'inscription, et mes problèmes sont les suivants :

- Quand je valide mon formulaire, j'arrive bien sur ma page test "cible.php" qui m'indique que les données ont bien étaient insérées dans ma table formulaire, mais dans mysql, j'ai bien des entrées qui se cumulent mais le contenu des différents champs sont vides.Je ne vois pas d'où ça peut venir.
- Quand je ne rempli pas un champs obligatoire, ça me dirige quand même sur ma page "cible.php", je n'ai donc pas le message d'erreur qui devrait apparaître.
- Et quand je charge pour la première fois mon formulaire.php, il y a le contenu de la page cible .php qui s'affiche en bas.

Si quelqu'un à quelques conseils à me donner, merci d'avance.


Voici mon code :


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
</head>
<body>

<font color="#FFFFFF">
<fieldset><legend><u>Formulaire d'inscription</u> :</legend>

<form action="cible.php" method="post"/>


<label for="email">Votre e-mail* :</label><input type="text" name="email" id="email"/><br />

<label for="nom">Nom* :</label><input type="text" name="nom" id="nom"/><br />

<label for="prenom">Prénom* :</label><input type="text" name="prenom" id="prenom"/><br />

<label for="civilite">Civilité :</label><select name="choix" id="civilite">
<option value="choix1">Mr</option>
<option value="choix2">Mme</option>
<option value="choix3">Mlle</option>
</select><br />

<label for="codepostal">Code Postal* :</label><input type="text" name="codepostal" id="codepostal"/><br />

<label for="ville">VIlle* :</label><input type="text" name="ville" id="ville"/><br />

<label for="datedenaissance">Date de Naissance* :</label><input type="text" name="datedenaissance" id="datedenaissance"/><br />
<label for="formatdate">jj/mm/aaaa</label><br /><br />
<hr />
<legend><u>Parrainage</u> :</legend><br /><br />
<label for="filleule1">Filleule 1 :</label><input type="text" name="filleule1" id="filleule1"/><br />
<label for="filleule2">Filleule 2 :</label><input type="text" name="filleule2" id="filleule2"/><br />
<label for="filleule3">Filleule 3 :</label><input type="text" name="filleule3" id="filleule3"/><br /><br />
<label for="newsletters">Je m'inscris à la newsletter :</label><input type="radio" name="choix" value="Oui" id="choixoui"/><font size="-2">Oui</font><input type="radio" name="choix" value="Non" id="choixnon"/><font size="-2">Non</font><br /><br /><br />
<input type="reset" name="reset" value="réinitialiser" id="boutonreset"/><input type="submit" name="DoIt" id="boutonenvoie"/>
</fieldset><br /><br /><br /><br />
</form>
</font>

<?php

$cnx = mysql_connect("localhost","root","") or die( mysql_error() ) ;
mysql_select_db("inscriptions");

$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$message = $msg_erreur;

/*Controle des champs obligatoires*/
if (!isset($_POST['email']))
$message .= "Votre e-Mail<br/>";
if (!isset($_POST['nom']))
$message .= "Votre nom<br/>";
if (!isset($_POST['prenom']))
$message .= "Votre prenom<br/>";
if (!isset($_POST['codepostal']))
$message .= "Votre code postal<br/>";
if (!isset($_POST['ville']))
$message .= "Votre ville<br/>";
if (!isset($_POST['datedenaissance']))
$message .= "Votre Date de naissance<br/>";


if (strlen($message) > strlen($msg_erreur)) {

echo $message;

} else {

foreach($_POST as $index => $valeur) {
$index = mysql_real_escape_string(trim($valeur));

}}

$email = $_POST['email'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$civilite = $_POST['civilite'];
$codepostal = $_POST['codepostal'];
$ville = $_POST['ville'];
$datedenaissance = $_POST['datedenaissance'];
$filleule1 = $_POST['filleule1'];
$filleule2 = $_POST['filleule2'];
$filleule3 = $_POST['filleule3'];

$sql = "INSERT INTO formulaire (email, nom, prenom, civilite, codepostal, ville, datedenaissance, filleule1, filleule2, filleule3) VALUES ('$email', '$nom', '$prenom', '$civilite', '$codepostal', '$ville', '$datedenaissance', '$filleule1', '$filleule2', '$filleule3')";
$res = mysql_query($sql) or die( mysql_error() ) ;


if ($res) {

include("cible.php");

} else {

echo mysql_error();

}

mysql_close();

?>
</body>
</html>
A voir également:

5 réponses

ton code apriori correct, tu fais un echo pour voir les valeurs de tes variables.
ou un echo de ta requete , echo $sql; pour voir si les variables sont pas vides.
0
kykyboogy Messages postés 4 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 13 janvier 2009
13 janv. 2009 à 01:40
Je viens d'essayer avec echo $sql, et voilà la requête qui s'affiche :

INSERT INTO formulaire (email, nom, prenom, civilite, codepostal, ville, datedenaissance, filleule1, filleule2, filleule3) VALUES ('', '', '', '', '', '', '', '', '', '')

c'est vide :s


Je viens de constater un autre problème,quand je lance pour la première mon formulaire, j'ai mon message d'erreur qui s'affiche directement :

"Erreur. Les champs suivants doivent être obligatoirement remplis :

Votre e-Mail
Votre nom
Votre prenom
Votre code postal
Votre ville
Votre Date de naissance"

je comprends plus :s
0
une fois ta requete sera avec des variables non vides. le probleme que t'as constaté saute, du fait que ds ton code t'as met if (!isset(['email'])) echo $message;...

alors t'as séparé comme je t'ai proposé.
0
ton formulaire.php doit etre la partie html de ton code et cible.php doit etre ce que t'as met entre <?php et ?>. ça dois marcher.


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
</head>
<body>

<font color="#FFFFFF">
<fieldset><legend><u>Formulaire d'inscription</u> :</legend>

<form action="cible.php" method="post"/>


<label for="email">Votre e-mail* :</label><input type="text" name="email" id="email"/><br />

<label for="nom">Nom* :</label><input type="text" name="nom" id="nom"/><br />

<label for="prenom">Prénom* :</label><input type="text" name="prenom" id="prenom"/><br />

<label for="civilite">Civilité :</label><select name="choix" id="civilite">
<option value="choix1">Mr</option>
<option value="choix2">Mme</option>
<option value="choix3">Mlle</option>
</select><br />

<label for="codepostal">Code Postal* :</label><input type="text" name="codepostal" id="codepostal"/><br />

<label for="ville">VIlle* :</label><input type="text" name="ville" id="ville"/><br />

<label for="datedenaissance">Date de Naissance* :</label><input type="text" name="datedenaissance" id="datedenaissance"/><br />
<label for="formatdate">jj/mm/aaaa</label><br /><br />
<hr />
<legend><u>Parrainage</u> :</legend><br /><br />
<label for="filleule1">Filleule 1 :</label><input type="text" name="filleule1" id="filleule1"/><br />
<label for="filleule2">Filleule 2 :</label><input type="text" name="filleule2" id="filleule2"/><br />
<label for="filleule3">Filleule 3 :</label><input type="text" name="filleule3" id="filleule3"/><br /><br />
<label for="newsletters">Je m'inscris à la newsletter :</label><input type="radio" name="choix" value="Oui" id="choixoui"/><font size="-2">Oui</font><input type="radio" name="choix" value="Non" id="choixnon"/><font size="-2">Non</font><br /><br /><br />
<input type="reset" name="reset" value="réinitialiser" id="boutonreset"/><input type="submit" name="DoIt" id="boutonenvoie"/>
</fieldset><br /><br /><br /><br />
</form>
</font>

</body>
</html>
0
kykyboogy Messages postés 4 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 13 janvier 2009
13 janv. 2009 à 02:01
oui je vois ce que tu veux dire mais je ne vois pas trop comment faire, ça veut dire que quand je clique sur mon bouton "valider", ma page cible.php doit s'exécuter, je fais comment je met un include sur me page cible.php ?
0
dans ton ton fichier formulaire.php t'as met un formulaire <form action="cible.php" metod="post"> ...</form>
donc qd tu charge ce fichier t'as des champ texte e-mail, nom, prenom et un botton submit. donc qd tu clique sur le button tu execute la cible.php qu'est un fichier qui traite les données c-a-d, tu récupere les variables passées par la méthode post a savoir $_Post['e-mail']; $_POST['nom'] etc après tu insert ds ta table inscription voila.

donc t'as a créer formulaire.php et tu met ce qu'est entre <form> et </form> plus les entete <html> et </html>
et un autre fichier cible.php où tu met le code php ce que t'as entre <?php et ?>
ça dois marcher.
0
Voila je te passe un petit exemple dont tu peux t'inspirer:

fichier formulaire.php:

<html>
<title> mon titre</title>
<body>
<form action="cible.php" method="post">
nom<input type="text" name= "username">
   <input type="submit" name="valider">
</form>
</body>
</html>

fichier cible.php:

ce fichier utilise une base de donne qui se nome "unebase"
et une table inscription avec un seul champ nomé nom: que tu peux créer au préalable.

<?php
$name = $_POST['username'];
$name1 = $_REQUEST['username'];
echo 'name '.$name. ' name1 '.$name1;
$conn = mysql_connect("localhost","root","");
$base = mysql_select_db("unebase");
$sql = "insert into inscription(nom) values ('$name')";
echo '<br />sql '.$sql;
$res = mysql_query($sql,$conn) or die ("requete impossible ".mysql_error());
?>

et bonne courage.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kykyboogy Messages postés 4 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 13 janvier 2009
13 janv. 2009 à 14:25
Merci beaucoup ça fonctionne au poil, juste un détail, pour la civilité j'ai mis un menu déroulant, et j'aimerais qu'il m'enregistre ds la base Mr, Mme ou Mlle, mais la ce n'est pas la cas, comment gère t-on ça?
0
par ce que civilite tu la récupère avec $_POST['choix'] et non pas $_POST['civilite'] comme elle est dans ton fichier cible.php

donc tu modifié ds cible.php, $_POST['civilite'] par $_POST['choix'] .en fait tu récupère le nom du champ définie par name <input name="qlqchose">
en plus tu te contente à faire ds ton formulaire.php :

<label for="civilite">Civilité :</label><select name="choix" id="civilite">
<option>Mr</option>
<option>Mme</option>
<option>Mlle</option>
</select><br />

tu aura $_POST['choix'] = Mr ou Mme ou Mlle direct au lieu d'avoir choix1 ou choix2 ...
ok!
0