Formulaire et base mysql : au secours !!!

Fermé
campusliber - 3 juin 2008 à 17:35
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 - 4 juin 2008 à 14:42
Bonjour,

Soit un formulaire, une base de données, et les codes ci-dessous...

LE FORMULAIRE :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>formulaireagent2</title>
<link href="00stylecosmaforms.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.Style1 {color: #FFFFFF}
-->
</style>
</head>

<body>
<table width="645" height="145" border="0" cellpadding="4" cellspacing="4">
<tr>
<td><form id="form1" name="form1" method="post" action="traitinscragent.php">
<table border="0" cellspacing="4" cellpadding="4">
<tr>
<td colspan="5" bgcolor="#800000"><div align="center"><span class="Style1">CORRESPONDANT RÉGIONAL </span></div></td>
<td width="197" bgcolor="#800000"><div align="center"><span class="Style1">DEMANDE D'INSCRIPTION </span></div></td>
</tr>
<tr>
<td valign="top" class="19petittimesboldtungst"> </td>
<td colspan="4" valign="top" class="19petittimesboldtungst"><input name="titreformulaire" type="hidden" id="titreformulaire" value="Demande d'inscription de correspondant régional" /></td>
<td valign="top"> </td>
</tr>
<tr>
<td width="112" valign="top" class="19petittimesboldtungst">Civilités
<label></label></td>
<td colspan="4" valign="top" class="19petittimesboldtungst"><label>
<input type="radio" name="civilites" value="Madame" />
Madame</label>
<input type="radio" name="civilites" value="Mademoiselle" />
<label> Mademoiselle</label>
<label>
<input type="radio" name="civilites" value="Monsieur" />
Monsieur</label> </td>
<td valign="top"> </td>
</tr>
<tr>
<td class="19petittimesboldtungst">Prénom</td>
<td colspan="3" class="19petittimesboldtungst"><input name="prenom" type="text" id="prenom" /></td>
<td width="100" class="19petittimesboldtungst"> Nom</td>
<td><input name="nom" type="text" id="nom" /></td>
</tr>
<tr class="19petittimesboldtungst">
<td>Adresse</td>
<td colspan="5"><input name="adresse" type="text" id="adresse" size="50" /></td>
</tr>
<tr class="19petittimesboldtungst">
<td>suite adresse </td>
<td colspan="5"><input name="suiteadresse" type="text" id="suiteadresse" size="50" /></td>
</tr>
<tr class="19petittimesboldtungst">
<td>Code Postal </td>
<td width="82"><input name="codepostal" type="text" id="codepostal" size="5" /></td>
<td width="69">Ville</td>
<td colspan="3"><input name="ville" type="text" id="ville" /></td>
</tr>
<tr>
<td class="19petittimesboldtungst">Téléphone fixe </td>
<td class="19petittimesboldtungst"><input name="telfixe" type="text" id="telfixe" size="10" maxlength="10" /></td>
<td class="19petittimesboldtungst">GSM</td>
<td colspan="2" class="19petittimesboldtungst"><input name="gsm" type="text" id="gsm" size="10" maxlength="10" /></td>
<td> </td>
</tr>
<tr class="19petittimesboldtungst">
<td>Adresse e-mail</td>
<td colspan="5"><input name="adressemail" type="text" id="adressemail" size="45" /></td>
</tr>
<tr class="19petittimesboldtungst">
<td colspan="6"><hr /></td>
</tr>
<tr>
<td colspan="5" class="19petittimesboldtungst">Si vous souhaitez bénéficier d'un statut salarié, indiquez votre n° S.S. </td>
<td><input name="secusociale" type="text" id="secusociale" /></td>
</tr>
<tr>
<td class="19petittimesboldtungst">Date de naissance </td>
<td colspan="3" class="19petittimesboldtungst"><input name="datenaissance" type="text" id="datenaissance" size="10" />
(jj/mm/aaaa)</td>
<td class="19petittimesboldtungst">Lieu de naissance </td>
<td><input name="villenaissance" type="text" id="villenaissance" size="30" /></td>
</tr>
<tr>
<td class="19petittimesboldtungst">Département</td>
<td colspan="4" class="19petittimesboldtungst"><input name="departnaissance" type="text" id="departnaissance" size="3" /></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td colspan="4"> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td colspan="4"> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td colspan="4" bgcolor="#0000FF" class="27petittimesboldrouge"><span class="27petittimesboldrouge Style1">VERIFIEZ QUE TOUTES LES INFORMATIONS SONT EXACTES ET CLIQUEZ SUR </span></td>
<td bgcolor="#0000FF" class="27petittimesboldrouge"><div align="center">
<input type="submit" name="Submit" value="ENVOYEZ" />
</div></td>
</tr>
<tr>
<td> </td>
<td colspan="4"> </td>
<td> </td>
</tr>
<tr>
<td colspan="6"><div align="center"><span class="09xpetittimesrouge">IMPORTANT : VOUS POUVEZ CUMULER CETTE ACTIVITÉ AVEC LE RMI OU LES ALLOCATIONS CHOMAGE </span></div></td>
</tr>
<tr>
<td> </td>
<td colspan="4"> </td>
<td> </td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>

------------------------------------------------------------------------------------------------------------

LA PAGE DE TRAITEMENT

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>traitementinscriptionagent</title>
</head>

<body>
<?php

// ON crée les variables de connection
$hote = "localhost";
$user = "campusliber";
$pass = "123456";
$base = "agents";
$table = "inscription";

$titreformulaire = $HTTP_POST_VARS[" titreformulaire"];
$civilites = $HTTP_POST_VARS["civilites"];
$prenom = $HTTP_POST_VARS["prenom"];
$nom = $HTTP_POST_VARS["nom"];
$adresse = $HTTP_POST_VARS["adresse"];
$suiteadresse = $HTTP_POST_VARS["suiteadresse"];
$codepostal = $HTTP_POST_VARS["codepostal"];
$ville = $HTTP_POST_VARS["ville"];
$telfixe = $HTTP_POST_VARS["telfixe"];
$gsm = $HTTP_POST_VARS["gsm"];
$adressemail = $HTTP_POST_VARS["adressemail"];
$secusociale = $HTTP_POST_VARS["secusociale"];
$datenaissance= $HTTP_POST_VARS[" datenaissance"];
$villenaissance = $HTTP_POST_VARS["villenaissance"];
$departnaissance = $HTTP_POST_VARS["departnaissance"];

// On se connecte à la base de données
mysql_connect("$hote","$user","$pass");
mysql_select_db("$base");

// On insère les données dans la table
$sql = "INSERT INTO $table VALUES (
'.'$titreformulaire'.
.'$civilites'.
.'$prenom'.
.'$nom'.
.'$adresse'.
.'$suiteadresse'.
.'$codepostal'.
.'$ville'.
.'$telfixe'.
.'$gsm'.
.'$adressemail'.
.'$secusociale'.
.'$datenaissance'.
.'$villenaissance'.
.'$departnaissance'.)";
mysql_query($sql)
?>

</body>
</html>

------------------------------------------------------------------------------------------------------------

Et, évidemment, ça ne fonctionne pas !
J'ai essayé diverses modifs qu'on m'a conseillé à droite ou à gauche, mais rien n'y fait !

Est-ce que quelqu'un pourrait avoir la bonté de se pencher sur ce code pour me dire ce qui cloche ?

Merci d'avance...

9 réponses

macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
3 juin 2008 à 18:07
Bonjour.

Et, évidemment, ça ne fonctionne pas !
Ca veut dire quoi ? Il y a un message d'erreur quand tu interroges la page web - lequel ? Ca ne remplit pas la base, ça la remplit mal ?

C'est un peu difficile de t'aider si tu ne précises pas ce qui "ne marche pas" !

Ce que tu peux déjà faire :
Une fois que tu as récupéré tes variables, mets un echo 'MaVariable = ".$MaVariable."<br />";

Récupère l'éventuel message d'erreur :
mysql_connect("$hote","$user","$pass") or die ( "Erreur de connexion : ".mysql_error() );
mysql_select_db("$base") or die ( "Erreur de connexion à la base ".$base." ".mysql_error() ); 
...
mysql_query($sql) or die ("Erreur dans la requête ".mysql_error() );
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
3 juin 2008 à 18:14
Puis remplace $HTTP_POST_VARS par htmlentities($_POST['?????']) .

et change les . par des , dans la requête ce qui donne :

"INSERT INTO $table VALUES (
$titreformulaire,$civilites,$prenom,$nom,$adresse,$suiteadresse,$codepostal,$ville,$telfixe,$gsm,$adressemail,$secusociale,$datenaissance
,$villenaissance,$departnaissance)"
0
Merci de ton aide.
J'ai modifié les lignes comme indiqués, et j'obtiens... une magnifique page blanche !

Le code modifié :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>traitementinscriptionagent</title>
</head>

<body>
<?php

// ON crée les variables de connection
$hote = "localhost";
$user = "campusliber";
$pass = "123456";
$base = "agents";
$table = "inscription";

$titreformulaire =htmlentities($_POST['?????'])[" titreformulaire"];
$civilites = $HTTP_POST_VARS["civilites"];
$prenom = $HTTP_POST_VARS["prenom"];
$nom = $HTTP_POST_VARS["nom"];
$adresse = $HTTP_POST_VARS["adresse"];
$suiteadresse = $HTTP_POST_VARS["suiteadresse"];
$codepostal = $HTTP_POST_VARS["codepostal"];
$ville = $HTTP_POST_VARS["ville"];
$telfixe = $HTTP_POST_VARS["telfixe"];
$gsm = $HTTP_POST_VARS["gsm"];
$adressemail = $HTTP_POST_VARS["adressemail"];
$secusociale = $HTTP_POST_VARS["secusociale"];
$datenaissance= $HTTP_POST_VARS[" datenaissance"];
$villenaissance = $HTTP_POST_VARS["villenaissance"];
$departnaissance = $HTTP_POST_VARS["departnaissance"];

// On se connecte à la base de données
mysql_connect("$hote","$user","$pass");
mysql_select_db("$base");

// On insère les données dans la table
$sql = "INSERT INTO $table VALUES (
$titreformulaire,$civilites,$prenom,$nom,$adresse,$suiteadresse,$codepostal,$ville,$telfixe,$gsm,$adressemail,$secusociale,$datenaissance
,$villenaissance,$departnaissance)"
mysql_query($sql)
?>

</body>
</html>
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89 > campusliber
3 juin 2008 à 19:05
Si tu donnes le code complet de ta page, c'est normal : au final, le source de la page générée sera :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>traitementinscriptionagent</title>
</head>

<body> 

</body>
</html>


Et tu oublies des ; !

$sql = "INSERT INTO $table VALUES (
$titreformulaire,$civilites,$prenom,$nom,$adresse,$suiteadresse,$codepostal,$ville,$telfix­e,$gsm,$adressemail,$secusociale,$datenaissance
,$villenaissance,$departnaissance)";
mysql_query($sql);

Enfin, fais ce que je t'ai dis (ajoute des echo et des "or die"), ça te donnera des infos sur l'erreur...
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
3 juin 2008 à 19:08
Tu n'as pas remplacer $HTTP_POST_VARS par $_POST ni mis en place les ajouts de macgawel .

Tu dois obtenir :

<?php

// la fonction d'en dessous si tu enleves les commentaire va afficher un/des message(s) d'erreur pour la moindre erreur.
// error_reporting(E_ALL);

// ON crée les variables de connection
$hote = "localhost";
$user = "campusliber";
$pass = "123456";
$base = "agents";
$table = "inscription";

$titreformulaire =htmlentities($_POST['?????'])[" titreformulaire"];
$civilites = $_POST["civilites"];
$prenom = $_POST["prenom"];
$nom = $_POST["nom"];
$adresse = $_POST["adresse"];
$suiteadresse = $_POST["suiteadresse"];
$codepostal = $_POST["codepostal"];
$ville = $_POST["ville"];
$telfixe = $_POST["telfixe"];
$gsm = $_POST["gsm"];
$adressemail = $_POST["adressemail"];
$secusociale = $_POST["secusociale"];
$datenaissance= $_POST[" datenaissance"];
$villenaissance = $_POST["villenaissance"];
$departnaissance = $_POST["departnaissance"];

// On se connecte à la base de données
mysql_connect("$hote","$user","$pass") or die ( "Erreur de connexion : ".mysql_error() );
mysql_select_db("$base") or die ( "Erreur de connexion à la base ".$base." ".mysql_error() );

// On insère les données dans la table
$sql = "INSERT INTO $table VALUES (
$titreformulaire,$civilites,$prenom,$nom,$adresse,$suiteadresse,$codepostal,$ville,$telfix­e,$gsm,$adressemail,$secusociale,$datenaissance
,$villenaissance,$departnaissance)";

mysql_query($sql) or die ("Erreur dans la requête ".mysql_error() );

?>
0
J'ai recopié ton code :

<?php

error_reporting(E_ALL);

// ON crée les variables de connection
$hote = "localhost";
$user = "campusliber";
$pass = "265369v";
$base = "agents";
$table = "inscription";

$titreformulaire =htmlentities($_POST['?????'])[" titreformulaire"];
$civilites = $_POST["civilites"];
$prenom = $_POST["prenom"];
$nom = $_POST["nom"];
$adresse = $_POST["adresse"];
$suiteadresse = $_POST["suiteadresse"];
$codepostal = $_POST["codepostal"];
$ville = $_POST["ville"];
$telfixe = $_POST["telfixe"];
$gsm = $_POST["gsm"];
$adressemail = $_POST["adressemail"];
$secusociale = $_POST["secusociale"];
$datenaissance= $_POST[" datenaissance"];
$villenaissance = $_POST["villenaissance"];
$departnaissance = $_POST["departnaissance"];

// On se connecte à la base de données
mysql_connect("$hote","$user","$pass") or die ( "Erreur de connexion : ".mysql_error() );
mysql_select_db("$base") or die ( "Erreur de connexion à la base ".$base." ".mysql_error() );

// On insère les données dans la table
$sql = "INSERT INTO $table VALUES (
$titreformulaire,$civilites,$prenom,$nom,$adresse,$suiteadresse,$codepostal,$ville,$telfix­­e,$gsm,$adressemail,$secusociale,$datenaissance
,$villenaissance,$departnaissance)";

mysql_query($sql) or die ("Erreur dans la requête ".mysql_error() );

?>

et j'arrive toujours sur une page blanche après validation de mon formulaire !!!
0

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

Posez votre question
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
3 juin 2008 à 19:30
Tu vois quelque chose dans le code source de ta page ?
Et dans ta BDD, l'insertion est faite ?
Essaye en mettant des echo de tes variables.

Et si tu n'as toujours rien, vas-y pas à pas :
Commence par enlever tout le code php sauf les affactations (et les echo).
Si cette partie est OK (affichage de toutes tes variables), rajoute la partie gestion de BDD.
Sinon, c'est que le problème vient de la partie affectation...

Au fait, tu es sûr de toi ici :
$titreformulaire =htmlentities($_POST['?????'])[" titreformulaire"];
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
3 juin 2008 à 19:42
Oups je me suis tromper , c'est plutot htmlentities($_POST[" titreformulaire"]) ; j'ai recopier trop vite ,

en plus c'est normal qu'il y ai une page blanche , ton script sert juste a insérer des données dans une base de donnée ...sa ne te dis pas d'afficher quelque chose.
pour en être sur va voir dans ta base de donnée ..et regarde si les données s'enregistre .
0
J'ai beaucoup de mal à comprendre ce que tu me dis, macgawel !!!

"Commence par enlever tout le code php sauf les affactations (et les echo)" : ???
"(affichage de toutes tes variables)" : où ces données doivent-elles s'afficher ???
"Au fait, tu es sûr de toi ici :
$titreformulaire =htmlentities($_POST['?????'])[" titreformulaire"];" : c'est le code que m'a donné naruto-94 !

Donc, actuellement, après modifs, ça se présente comme ça :

<?php

error_reporting(E_ALL);

// ON crée les variables de connection
$hote = "localhost";
$user = "campusliber";
$pass = "265369v";
$base = "agents";
$table = "inscription";

$titreformulaire =htmlentities($_POST[" titreformulaire"]);
$civilites = $_POST["civilites"];
$prenom = $_POST["prenom"];
$nom = $_POST["nom"];
$adresse = $_POST["adresse"];
$suiteadresse = $_POST["suiteadresse"];
$codepostal = $_POST["codepostal"];
$ville = $_POST["ville"];
$telfixe = $_POST["telfixe"];
$gsm = $_POST["gsm"];
$adressemail = $_POST["adressemail"];
$secusociale = $_POST["secusociale"];
$datenaissance= $_POST[" datenaissance"];
$villenaissance = $_POST["villenaissance"];
$departnaissance = $_POST["departnaissance"];

// On se connecte à la base de données
mysql_connect("$hote","$user","$pass") or die ( "Erreur de connexion : ".mysql_error() );
mysql_select_db("$base") or die ( "Erreur de connexion à la base ".$base." ".mysql_error() );

// On insère les données dans la table
$sql = "INSERT INTO $table VALUES (
$titreformulaire,$civilites,$prenom,$nom,$adresse,$suiteadresse,$codepostal,$ville,$telfix­­e,$gsm,$adressemail,$secusociale,$datenaissance
,$villenaissance,$departnaissance)";

mysql_query($sql) or die ("Erreur dans la requête ".mysql_error() );

?>

Après envoi du formulaire, ça mouline un peu, puis page blanche.
Mais, a priori, aucun enregistrement dans la base de données.
Ce qui m'amène à une autre question : comment diable affiche-t-on les données ? Quand je me connecte sur le servuer, j'accède au fichier en mode "définition" : liste des rubriques et possibilité de les modifier. Mais je n'ai vu nulle part u!ne possibilité d'affichage en mode "utilisation" ?!?
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
4 juin 2008 à 14:42
Vas voir ICI pour la base sur php.
Puis les méthodes de débogage.


<?php

error_reporting(E_ALL);

// ON crée les variables de connection
$hote = "localhost";
$user = "campusliber";
$pass = "265369v";
$base = "agents";
$table = "inscription";

/*
On utilise l'artillerie lourde :
On va afficher tout le contenu de ta variable $_POST...
Puis le <hr /> sert à séparer de la suite...
*/
var_dump ($_POST);
echo '<hr />';

$titreformulaire =htmlentities($_POST[" titreformulaire"]);

/*
On affiche
<Nom de la variable> = <la valeur de la variable>
Le <br /> sert à passer à la ligne pour "présenter" les différentes variables affichées...
Ligne à recopier (en changeant le nom de la variable !) après chaque ligne d'affectation.
*/
echo 'Titre = '.$titreformulaire.'<br />';
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
3 juin 2008 à 20:29
Normalement ceci doit marcher :

<?php

error_reporting(E_ALL);

// ON crée les variables de connection
$hote = "localhost";
$user = "campusliber";
$pass = "265369v";
$base = "agents";
$table = "inscription";

$titreformulaire =htmlentities($_POST[" titreformulaire"]);
$civilites = htmlentities($_POST["civilites"]);
$prenom = htmlentities($_POST["prenom"]);
$nom = htmlentities($_POST["nom"]);
$adresse = htmlentities($_POST["adresse"]);
$suiteadresse = htmlentities($_POST["suiteadresse"]);
$codepostal = htmlentities($_POST["codepostal"]);
$ville = htmlentities($_POST["ville"]);
$telfixe = htmlentities($_POST["telfixe"]);
$gsm = htmlentities($_POST["gsm"]);
$adressemail = htmlentities($_POST["adressemail"]);
$secusociale = htmlentities($_POST["secusociale"]);
$datenaissance= htmlentities($_POST[" datenaissance"]);
$villenaissance = htmlentities($_POST["villenaissance"]);
$departnaissance = htmlentities($_POST["departnaissance"]);

// On se connecte à la base de données
mysql_connect("$hote","$user","$pass") or die ( "Erreur de connexion : ".mysql_error() );
mysql_select_db("$base") or die ( "Erreur de connexion à la base ".$base." ".mysql_error() );

// On insère les données dans la table
$sql = "INSERT INTO $table VALUES (
$titreformulaire,$civilites,$prenom,$nom,$adresse,$suiteadresse,$codepostal,$ville,$telfix­­­e,$gsm,$adressemail,$secusociale,$datenaissance
,$villenaissance,$departnaissance)";

mysql_query($sql) or die ("Erreur dans la requête ".mysql_error() );

echo 'les informations ont été enrengistrées:<br />' .$titreformulaire.' '.$civilites.' '.$prenom.' '.$nom.' '.$adresse'.'Etc...' ;

?>

apres pour les afficher sur une autre page c'est autre chose . tu pourras utiliser mysql_fetch_array() ou autre fonction .
Pour plus d'info sert toi de la doc php => https://www.php.net/manual/fr/function.mysql-fetch-array.php
0
J'ai fait un copier/coller du code que tu m'as gentiment ré-écrit... et toujours une page blanche, et pas de nouvelle fiche dans la table !
???
0