Formulaire php / base de donnée mysql

Fermé
Bérénice - 27 déc. 2011 à 11:43
 Bérénice - 27 déc. 2011 à 16:53
Bonjour,

Je suis loin d'être informaticienne et pour dépanner des amis je leur fais un formulaire en ligne qui entre les données dans une base de donnée. Mais voilà j'y suis arrivé au début et puis en ajoutant des choses pouf plus que des erreurs... J'ai donc recommencer, tout changer etc... mais plus rien n'y fait. J'aurais aimé que quelqu'un jette un oeil pour me dire où j'ai raté car là perso je ne vois plus rien.
Je vous remercie d'avance.
Voici mon code formulaire.htm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>formulaire</title>
<style type="text/css" media="all">
td {font-weight: bold; text-align: right;}
td.liste{text-align: left;}
th {font-size: 2em; color: #6C2304; padding: 0; border-bottom: 3px solid #6C2304;}
</style>
<style type="text/css" media="print">
div.nepasvoir p:first-line {font-weight: bold;}
tr#nepasimprimer {display: none;}
</style>
<style type="text/css" media="screen">
div.nepasvoir {display: none;}
td.info{border-left : 2px solid #6C2304; border-bottom: 1px solid #BB733E}
td.champ{border-right : 2px solid #6C2304;}
td {padding: 0.25em 1px;}
td.subject{border-left : 2px solid #6C2304; border-bottom: 2px solid #BB733E}
td.liste{ border-top: 1px solid #BB733E; border-right: 2px solid #6C2304; border-bottom: 2px solid #BB733E;}
td.contenu{border-left : 2px solid #6C2304; border-bottom: 2px solid #6C2304}
td.contenant{border-right : 2px solid #6C2304; border-bottom: 2px solid #6C2304}
td.lesboutons{}
.Style1 {font-family: Georgia, "Times New Roman", Times, serif}
</style>
<script type="text/javascript" language="Javascript" >
<!--
function verification()
{
if(document.formulaire.nom.value == "") {
alert("Veuillez entrer votre nom svp");
document.formulaire.nom.focus();
return false;
}
else
if(document.formulaire.prenom.value == "") {
alert("Veuillez entrer votre prenom svp");
document.formulaire.prenom.focus();
return false;
}
else
if(document.formulaire.email.value == "") {
alert("Veuillez entrer votre adresse electronique svp");
document.formulaire.email.focus();
return false;
}
else
if(document.formulaire.naissance.value == "") {
alert("Veuillez entrer votre date de naissance svp");
document.formulaire.naissance.focus();
return false;
}
else
if(document.formulaire.adresse.value == "") {
alert("Veuillez entrer votre adresse svp");
document.formulaire.adresse.focus();
return false;
}
else
if(document.formulaire.cp.value == "") {
alert("Veuillez entrer votre code postal svp");
document.formulaire.cp.focus();
return false;
}
else
if(document.formulaire.ville.value == "") {
alert("Veuillez entrer votre ville svp");
document.formulaire.ville.focus();
return false;
}
else
if(document.formulaire.telephone.value == "") {
alert("Veuillez entrer votre telephone svp");
document.formulaire.telephone.focus();
return false;
}
else
if(document.formulaire.email.value.indexOf('@') == -1) {
alert("Ce n'est pas une adresse electronique, verifiez la svp");
document.formulaire.email.focus();
return false;
}
return true
}

//-->
</script>
</head>
<body>
<form name="formulaire" action="traitement.php" method="post" onSubmit="return verification()">

<table cellspacing="0">
<th colspan="2"><span class="Style1">Formulaire </span></th>
<tr><td class="info">Votre nom : </td><td class="champ">
<input name="nom" type="varchar" size="50" class="writein"></td></tr>
<tr><td class="info">Votre prénom : </td><td class="champ">
<input name="prenom" type="varchar" size="50" class="writein"></td></tr>
<tr>
<td class="info">Votre email : </td>
<td class="champ">
<input name="email" type="varchar" size="50" class="writein"></td></tr>
<td>
</tr>
<tr><td class="info">Date de naissance : </td>
<td class="champ">
<input name="naissance" type="varchar" size="50" class="writein"></td></tr>
<tr><td class="info">Adresse : </td><td class="champ">
<input name="adresse" type="varchar" size="50" class="writein"></td></tr>
<tr><td class="info">Code Postal : </td><td class="champ">
<input name="cp" type="varchar" size="50" class="writein"></td></tr>
<tr><td class="info">Ville : </td><td class="champ"><input name="ville" type="varchar" size="50" class="writein"></td>
</tr>
<tr><td class="info">Téléphone : </td><td class="champ">
<input name="telephone" type="varchar" size="50" class="writein"></td></tr>
<tr><td class="info">Cours suivi : </td><td class="champ">
<input name="cours" type="varchar" size="50" class="writein"></td></tr>
<tr><td class="info">Motif de réduction : </td><td class="champ">
<input name="reduc" type="varchar" size="50" class="writein"></td></tr>
<tr><td class="info">Dernière année d'adhésion : </td><td class="champ">
<input name="adhesion" type="varchar" size="50" class="writein"></td></tr>
<tr id="nepasimprimer"><td class="lesboutons"><input name="annuler" type="reset" value="Annuler"></td><td>
<input name="soumettre" type="submit" value="Envoyer"></td></tr>
</table>
<span class="champ">
</span>
<div class="nepasvoir">
Tous les champs du formulaire <strong>doivent</strong> être remplis.
<p>

</div>
</form>
</body>
</html>
Voici mon code traitement.php
<?php
if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";

if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";

if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";

if(isset($_POST['naissance'])) $icq=$_POST['naissance'];
else $naissance="";

if(isset($_POST['adresse'])) $titre=$_POST['adresse'];
else $adresse="";

if(isset($_POST['cp'])) $url=$_POST['cp'];
else $cp="";

if(isset($_POST['ville'])) $url=$_POST['ville'];
else $ville="";

if(isset($_POST['telephone'])) $url=$_POST['telephone'];
else $telephone="";

if(isset($_POST['cours'])) $url=$_POST['cours'];
else $cours="";

if(isset($_POST['reduc'])) $url=$_POST['reduc'];
else $reduc="";

if(isset($_POST['adhesion'])) $url=$_POST['adhesion'];
else $adhesion="";

if(empty($nom) OR empty($prenom) OR empty($email)
{
echo 'Attention, il faut remplir nom';
}


else {


$db = mysql_connect('mysql51-41.perso', 'abcdansecins', 'album22') or die('Erreur de connexion '.mysql_error());


mysql_select_db('abcdansecins',$db) or die('Erreur de selection '.mysql_error());


$sql = "INSERT INTO formulaire VALUES ('".$nom."', '".$prenom."', '".$email."', '".$naissance."', '".$adresse."', '".$cp."' ,'".$ville."', '".$telephone."', '".$cours."', '".$reduc."', '".adhesion."')";


mysql_query($sql) or die('Erreur SQL !'.$sql. mysql_error());

echo 'Vos infos on été ajoutées.';
}
?>
A voir également:

14 réponses

Stringman621 Messages postés 1308 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 340
27 déc. 2011 à 11:45
Bonjour,

Quelles sont les erreurs qui s'affichent ?? plutot PHP (qui viennent du code) ou SQL (de la requete) ?

@+
0
Là plus rien ne s'affiche... une fois le formulaire remplis, la page traitement reste vide (aucune erreur affichée) et la base de donnée n'est pas remplis...
0
Stringman621 Messages postés 1308 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 340
27 déc. 2011 à 11:54
A ce niveau là vérifie bien que tu as mis la parenthèse fermante à la fin de ton "if" :
...
if(empty($nom) OR empty($prenom) OR empty($email))
{
echo 'Attention, il faut remplir nom';
}


else { 
...


Car dans ton 1er post elle n'y est pas, je ne sais pas si c'est une erreur de frappe ou cette erreur est présente dans ton script ;)
0
Non je l'avais oublié merci !! mais malheureusement cela ne marche toujours pas...
0

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

Posez votre question
Stringman621 Messages postés 1308 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 340
27 déc. 2011 à 12:48
Un conseil essaie de mettre quelques echo 'test1' echo 'test2' dans ton code php comme ca tu va pouvoir voir à partir de où ca ne passe plus et ca va plus rapidement cibler le problème.

Par exemple juste après la balise "<?php" tu en met un et à l'execution tu vois s'il s'affiche ou pas, etc.
0
j'ai fait ça

<?php

echo 'test1'



et donc rien ne s'affiche... d'où peux venir le problème ?
0
Stringman621 Messages postés 1308 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 340
27 déc. 2011 à 13:37
Je viens de revoir ton code est il y a quelques truc qui me paraissent bizarre, par exemple dans ta requete INSERT tu as un champs $naissance qui n'est pas obligatoirement renseigné.

if(isset($_POST['naissance'])) $icq=$_POST['naissance'];
else $naissance=""; 


Idem pour plusieurs : adresse, cp, ville, telephone, cours, reduc et adhesion

0
Stringman621 Messages postés 1308 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 340
27 déc. 2011 à 13:41
Et il manque aussi un petit "$" devant la variable adhesion dans la requete d'insertion ;)
0
Merci pour toutes tes corrections, mais je ne comprend pas j'ai toujours une page blanche en traitement, même pas une erreur et il n'affiche pas pas mon echo 'test1'...
0
Stringman621 Messages postés 1308 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 340
27 déc. 2011 à 16:15
C'est bizarre car j'ai recopié ton code et l'ai fait fonctionné sou EasyPHP sur mon poste (sans faire le lien avec la BDD, je te met en dessous mon code :

formulaire.htm :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>formulaire</title>
<style type="text/css" media="all">
td {font-weight: bold; text-align: right;}
td.liste{text-align: left;}
th {font-size: 2em; color: #6C2304; padding: 0; border-bottom: 3px solid #6C2304;}
</style>
<style type="text/css" media="print">
div.nepasvoir p:first-line {font-weight: bold;}
tr#nepasimprimer {display: none;}
</style>
<style type="text/css" media="screen">
div.nepasvoir {display: none;}
td.info{border-left : 2px solid #6C2304; border-bottom: 1px solid #BB733E}
td.champ{border-right : 2px solid #6C2304;}
td {padding: 0.25em 1px;}
td.subject{border-left : 2px solid #6C2304; border-bottom: 2px solid #BB733E}
td.liste{ border-top: 1px solid #BB733E; border-right: 2px solid #6C2304; border-bottom: 2px solid #BB733E;}
td.contenu{border-left : 2px solid #6C2304; border-bottom: 2px solid #6C2304}
td.contenant{border-right : 2px solid #6C2304; border-bottom: 2px solid #6C2304}
td.lesboutons{}
.Style1 {font-family: Georgia, "Times New Roman", Times, serif}
</style>
<script type="text/javascript" language="Javascript" >
<!--
function verification()
{
if(document.formulaire.nom.value == "") {
alert("Veuillez entrer votre nom svp");
document.formulaire.nom.focus();
return false;
}
else
if(document.formulaire.prenom.value == "") {
alert("Veuillez entrer votre prenom svp");
document.formulaire.prenom.focus();
return false;
}
else
if(document.formulaire.email.value == "") {
alert("Veuillez entrer votre adresse electronique svp");
document.formulaire.email.focus();
return false;
}
else
if(document.formulaire.naissance.value == "") {
alert("Veuillez entrer votre date de naissance svp");
document.formulaire.naissance.focus();
return false;
}
else
if(document.formulaire.adresse.value == "") {
alert("Veuillez entrer votre adresse svp");
document.formulaire.adresse.focus();
return false;
}
else
if(document.formulaire.cp.value == "") {
alert("Veuillez entrer votre code postal svp");
document.formulaire.cp.focus();
return false;
}
else
if(document.formulaire.ville.value == "") {
alert("Veuillez entrer votre ville svp");
document.formulaire.ville.focus();
return false;
}
else
if(document.formulaire.telephone.value == "") {
alert("Veuillez entrer votre telephone svp");
document.formulaire.telephone.focus();
return false;
}
else
if(document.formulaire.email.value.indexOf('@') == -1) {
alert("Ce n'est pas une adresse electronique, verifiez la svp");
document.formulaire.email.focus();
return false;
}
return true
}

//-->
</script>
</head> 
<body>
<form name="formulaire" action="traitement.php" method="post" onSubmit="return verification()">

<table cellspacing="0">
<th colspan="2"><span class="Style1">Formulaire </span></th>
<tr><td class="info">Votre nom : </td><td class="champ">
<input name="nom" type="varchar" size="50" class="writein"></td></tr>
<tr><td class="info">Votre prénom : </td><td class="champ">
<input name="prenom" type="varchar" size="50" class="writein"></td></tr>
<tr>
<td class="info">Votre email : </td>
<td class="champ">
<input name="email" type="varchar" size="50" class="writein"></td></tr>
<td>
</tr>
<tr><td class="info">Date de naissance : </td>
<td class="champ">
<input name="naissance" type="varchar" size="50" class="writein"></td></tr>
<tr><td class="info">Adresse : </td><td class="champ">
<input name="adresse" type="varchar" size="50" class="writein"></td></tr>
<tr><td class="info">Code Postal : </td><td class="champ">
<input name="cp" type="varchar" size="50" class="writein"></td></tr>
<tr><td class="info">Ville : </td><td class="champ"><input name="ville" type="varchar" size="50" class="writein"></td>
</tr>
<tr><td class="info">Téléphone : </td><td class="champ">
<input name="telephone" type="varchar" size="50" class="writein"></td></tr>
<tr><td class="info">Cours suivi : </td><td class="champ">
<input name="cours" type="varchar" size="50" class="writein"></td></tr>
<tr><td class="info">Motif de réduction : </td><td class="champ">
<input name="reduc" type="varchar" size="50" class="writein"></td></tr>
<tr><td class="info">Dernière année d'adhésion : </td><td class="champ">
<input name="adhesion" type="varchar" size="50" class="writein"></td></tr>
<tr id="nepasimprimer"><td class="lesboutons"><input name="annuler" type="reset" value="Annuler"></td><td>
<input name="soumettre" type="submit" value="Envoyer"></td></tr>
</table>
<span class="champ">
</span>
<div class="nepasvoir">
Tous les champs du formulaire <strong>doivent</strong> être remplis.
<p>

</div>
</form>
</body>
</html> 



Et pour le traitement.php :

<?php

echo '1<br>';

if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";

if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";

if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";

if(isset($_POST['naissance'])) $naissance=$_POST['naissance']; 
else $naissance="";

if(isset($_POST['adresse'])) $adresse=$_POST['adresse'];
else $adresse="";

if(isset($_POST['cp'])) $cp=$_POST['cp'];
else $cp="";

if(isset($_POST['ville'])) $ville=$_POST['ville'];
else $ville="";

if(isset($_POST['telephone'])) $telephone=$_POST['telephone'];
else $telephone="";

if(isset($_POST['cours'])) $cours=$_POST['cours'];
else $cours="";

if(isset($_POST['reduc'])) $reduc=$_POST['reduc'];
else $reduc="";

if(isset($_POST['adhesion'])) $adhesion=$_POST['adhesion'];
else $adhesion="";

echo '2<br>';

if(empty($nom) OR empty($prenom) OR empty($email))
{
echo 'Attention, il faut remplir nom';
}


else {


//$db = mysql_connect('mysql51-41.perso', 'abcdansecins', 'album22') or die('Erreur de connexion '.mysql_error());


//mysql_select_db('abcdansecins',$db) or die('Erreur de selection '.mysql_error());


$sql = "INSERT INTO formulaire VALUES ('".$nom."', '".$prenom."', '".$email."', '".$naissance."', '".$adresse."', '".$cp."' ,'".$ville."', '".$telephone."', '".$cours."', '".$reduc."', '".$adhesion."')";

echo $sql;


//mysql_query($sql) or die('Erreur SQL !'.$sql. mysql_error());

echo 'Vos infos on été ajoutées.';
}

echo '3<br>';

?>

0
là tu as le droit de me hurler dessus et tout ça.... mais pourquoi il me faut easy php ? c'est pour simuler car ça ne marche pas en local le php ?
Je ne suis vraiment pas informaticienne...

Je t'autorise à me huer si tous mes problèmes viennent de là.
0
Stringman621 Messages postés 1308 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 340
27 déc. 2011 à 16:35
En fait le langage PHP est un langage qui doit être interprété par le serveur Web.
Si tu essai d'afficher une page PHP directement via un navigateur rien ne s'affiche.

EasyPHP permet de tester les pages en local il considère le poste comme un serveur et en "publiant" les pages ils sont interprétés

Dans ton 1er post, tu a dis que tu a réussi à faire fonctionner ta page, comment as-tu réussi ?
0
et ben il me semble que je l'avais mis en ligne... et testé sur le serveur... et en fait vu comme j'ai ajouté des champs après j'ai continué en local ne pensant pas du tout à le tester en ligne...
en gros ça veut dire qu'au début tout était bon dans le code et que je me suis mise dans la ***** toute seule en le modifiant en croyant que ça ne marchait plus..... :-(
Je vais donc testé avec easy php, pour toi le code fonctionnait donc ?
0
Stringman621 Messages postés 1308 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 340
27 déc. 2011 à 16:42
Oui, les sources que je t'ai donné fonctionnent.
Tu n'as pas obligatoirement besoin d'Easyphp tant que tes pages sont en lignes ca devrait fonctionnait.

J'ai utilisé EasyPHP, car j'utilise cet outil régulièrement pour faire des tests en local (et pour dépanner les personnes en détresse ;)
0
ok, et je met bien mysql51-41.perso ou localhost dans mon mysql_connect
0
ouaouh tout fonctionne, ok donc tout cela juste à cause du local... je m'en veux de t'avoir pris autant de temps pour rien... Merci beaucoup beaucoup...
0