Intégration des données du formulaire dans la base

Résolu
tophe33 Messages postés 10 Date d'inscription dimanche 2 avril 2006 Statut Membre Dernière intervention 13 janvier 2010 - 7 janv. 2010 à 09:28
fbsm Messages postés 3 Date d'inscription vendredi 6 février 2015 Statut Membre Dernière intervention 6 février 2015 - 6 févr. 2015 à 14:50
Bonjour,Je suis un graphiste qui débute dans le web design. J'ai quelques notions de php et je me forme tout seul grace aux différents forum.
Voilà,je travaille depuis deux jours sur un formulaire qui doit envoyer des données clients vers ma base (nom, adresse, téléphone...) J'utilise un code qui marchait très bien sur un autre site. Et là je ne comprends pas, lorsque je valide le formulaire, j'ai ma petite phrase qui me dit que les données ont bien été envoyées mais aucune trasse dans la base.
Voici le code de la base :
CREATE TABLE IF NOT EXISTS `annuaire` (
`id` int(3) unsigned NOT NULL auto_increment,
`nom` text collate latin1_general_cs NOT NULL,
`adresse` text collate latin1_general_cs NOT NULL,
`postal` text collate latin1_general_cs NOT NULL,
`ville` text collate latin1_general_cs NOT NULL,
`region` text collate latin1_general_cs NOT NULL,
`rubrique` text collate latin1_general_cs NOT NULL,
`presentation` text collate latin1_general_cs NOT NULL,
`keys` text collate latin1_general_cs NOT NULL,
`telephone` text collate latin1_general_cs NOT NULL,
`fax` text collate latin1_general_cs NOT NULL,
`email` text collate latin1_general_cs NOT NULL,
`lien` text collate latin1_general_cs NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `nom` (`nom`),
FULLTEXT KEY `adresse` (`adresse`),
FULLTEXT KEY `postal` (`postal`),
FULLTEXT KEY `ville` (`ville`),
FULLTEXT KEY `region` (`region`),
FULLTEXT KEY `rubrique` (`rubrique`),
FULLTEXT KEY `presentation` (`presentation`),
FULLTEXT KEY `keys` (`keys`),
FULLTEXT KEY `telephone` (`telephone`),
FULLTEXT KEY `fax` (`fax`),
FULLTEXT KEY `email` (`email`),
FULLTEXT KEY `lien` (`lien`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs AUTO_INCREMENT=2 ;



le code du formulaire :
<form name="form" id="form" method="post" action="verif-ajout-pro.php" onsubmit="return valider()">
Nom du pro.,
,

----

Adresse,
</textarea>,

----

Code Postal,
,

----

Ville,
,

----

Région,
<select name="region" id="region">
<option value="0">Choississez une région</option>
<option value="Alsace">Alsace</option>
<option value="Aquitaine">Aquitaine</option>
<option value="Auvergne">Auvergne</option>
<option value="Basse-Normandie">Basse Normandie</option>
<option value="Bourgogne">Bourgogne</option>
<option value="Bretagne">Bretagne</option>
<option value="Centre">Centre</option>
<option value="Chanpagne-Ardenne">Chanpagne-Ardenne</option>
<option value="Corse">Corse</option>
<option value="Franche-Comté">Franche-Comté</option>
<option value="Haute-Normandie">Haute Normandie</option>
<option value="Ile-de-France">Ile-de-France</option>
<option value="Languedoc-Roussillon">Languedoc-Roussillon</option>
<option value="Limousin">Limousin</option>
<option value="Lorraine">Lorraine</option>
<option value="Midi-Pyrénées">Midi-Pyrénées</option>
<option value="Nord-Pas-de-de-Calais">Nord-Pas-de-de-Calais</option>
<option value="Pays de la Loire">Pays de la Loire</option>
<option value="Picardie">Picardie</option>
<option value="Poitou-Charentes">Poitou-Charentes</option>
<option value="Provence">Provence</option>
<option value="Côte d'Azur">Côte d'Azur</option>
<option value="Alpes">Alpes</option>
<option value="Rhône-Alpes">Rhône-Alpes</option>
</select>,

----

Téléphone,
,

----

Fax,
,

----

e-mail,
,

----

Site internet,
,

----

Rubrique,
<select name="rubrique" id="rubrique">
<option value="0">Choissisez une rubrique</option>
<option value="1">Robes de Mariée</option>
<option value="2">Costumes homme</option>
<option value="3">Mode enfant</option>
<option value="4">Robes de cocktail</option>
<option value="5">Accessoires femme</option>
<option value="6">Accessoires homme</option>
<option value="7">Alliances, bijoux</option>
<option value="8">Coiffure</option>
<option value="9">Maquillage</option>
<option value="10">Parfums</option>
<option value="11">Manucure</option>
<option value="12">Salons de beauté</option>
<option value="13">Produits de beauté</option>
<option value="14">Salles et lieux</option>
<option value="15">Faire part</option>
<option value="16">Décoration et fleurs</option>
<option value="17">Traiteurs</option>
<option value="18">Gâteaux</option>
<option value="19">Vin et champagne</option>
<option value="20">Dragées</option>
<option value="21">Animation</option>
<option value="22">Photos et vidéo</option>
<option value="23">Location de véhicule</option>
<option value="24">Accessoires de fête</option>
<option value="25">Voyage de noces</option>
<option value="26">Wedding planners</option>
</select>,

----

Présentation,
<textarea name="presentation" cols="30" rows="6" id="presentation"></textarea>
5 lignes maximum,

----

Mots clés,
<textarea name="key" cols="30" rows="6" id="key"></textarea>,

----


</form>


et enfin le code php :
<?php
// connexion à la base de données
mysql_connect("","","");
mysql_select_db("");
//construction de la requete d'ajout
$requete= 'INSERT INTO annuaire VALUES("'.$_POST['nom'].'","'.$_POST['adresse'].'","'.$_POST['cp'].'","'.$_POST['ville'].'","'.$_POST['region'].'","'.$_POST['tel'].'","'.$_POST['fax'].'","'.$_POST['email'].'","'.$_POST['lien'].'","'.$_POST['rubrique'].'","'.$_POST['presentation'].'","'.$_POST['keys'].'")';
//execution de la requete
$result=mysql_query($requete);
$id=mysql_insert_id();
//affichage de la requete
echo "<center>Merci ! le professionnel a bien été
ajoutée</center>";
//redirection vers la page d'accueil de l'administration
echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=index.php'>";
?>
J'ai biensur enlever les codes de connection.
Voilà, si quelqu'un pouvait m'éclairer un peu. Merci d'avance

14 réponses

tophe33 Messages postés 10 Date d'inscription dimanche 2 avril 2006 Statut Membre Dernière intervention 13 janvier 2010
8 janv. 2010 à 08:19
je vous mets le quand même le code qui marche :
<?php
// connexion à la base de données
mysql_connect("","","");
mysql_select_db("");
//construction de la requete d'ajout
$requete= "INSERT INTO annuaire (nom,adresse,postal,ville,region,rubrique,presentation,mot_cle,telephone,fax,email,lien) VALUES ('".$nom."', '".$adresse."', '".$postal."', '".$ville."', '".$region."', '".$rubrique."', '".$presentation."', '".$mot_cle."', '".$telephone."', '".$fax."', '".$email."', '".$lien."')";
$result=mysql_query($requete) or die(mysql_error());
$id=mysql_insert_id();
//affichage de la requete
echo "<center>Merci ! le professionnel a bien été ajoutée</center>";
//redirection vers la page d'accueil de l'administration
echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=index.php'>";
?>
3
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 19
7 janv. 2010 à 11:36
Essaie avoir ça:
$result=mysql_query($requete);  or die(mysql_error());

Au moins ça te dira si tu as une erreur MySQL. Cette solution est moche mais rapide et compréhensible pour un débutant..
S.
0
tophe33 Messages postés 10 Date d'inscription dimanche 2 avril 2006 Statut Membre Dernière intervention 13 janvier 2010
7 janv. 2010 à 11:47
merci pour ta réponse et ta rapidité.
j'ai donc intégré ta ligne de code, et lorsque je valide le formulaire j'ai cette annonce d'erreur :
Parse error: syntax error, unexpected T_LOGICAL_OR in /homez.232/mariezvo/www/admin/verif-ajout-pro.php on line 8

La ligne 8 est donc ta ligne.
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 19
7 janv. 2010 à 13:08
Ben voila tu as un souci avec ta requete.
Juste avant l'exécution, fais un Echo pour voir quelle tête elle peutavoir..
S.
0

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

Posez votre question
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
7 janv. 2010 à 21:01
Salut,

Fatigué Syndrael ?

@Tophe
L'erreur est une erreur de syntaxe PHP.
Il est fort probable que tu ai recopié la faute d'inattention de Syndrael :
$result=mysql_query($requete);
or die(mysql_error());
=>
$result = mysql_query($requete) or die(mysql_error());

Comme le dit Syndrael le fait d'afficher les erreurs de la requête va te mettre très rapidement sur la voie.

Par ailleurs il est impératif que tu utilises mysql_real_escape_string() (cf la doc)


Cordialement,


Kohntark -
0
mtrix000 Messages postés 31 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 1 novembre 2012
8 janv. 2010 à 02:02
<?php


$tab_region = array("Choississez une région",
"Alsace",
"Aquitaine",
"Auvergne",
"Basse Normandie",
"Bourgogne",
"Bretagne",
"Centre",
"Chanpagne-Ardenne",
"Corse",
"Franche-Comté",
"Haute Normandie",
"Ile-de-France",
"Languedoc-Roussillon",
"Limousin",
"Lorraine",
"Midi-Pyrénées",
"Nord-Pas-de-de-Calais",
"Pays de la Loire",
"Picardie",
"Poitou-Charentes",
"Provence",
"Côte d'Azur",
"Alpes",
"Rhône-Alpes");

$tab_rubrique = array("Choissisez une rubrique",
"Robes de Mariée",
"Costumes homme",
"Mode enfant",
"Robes de cocktail",
"Accessoires femme",
"Accessoires homme",
"Alliances, bijoux",
"Coiffure",
"Maquillage",
"Parfums",
"Manucure",
"Salons de beauté",
"Produits de beauté",
"Salles et lieux",
"Faire part",
"Décoration et fleurs",
"Traiteurs",
"Gâteaux",
"Vin et champagne",
"Dragées",
"Animation",
"Photos et vidéo",
"Location de véhicule",
"Accessoires de fête",
"Voyage de noces",
"Wedding planners");
?>


le code du formulaire :
<form name="form" id="form" method="post" action="verif-ajout-pro.php" onsubmit="return valider()">
Nom du pro.,
,

----

Adresse,
</textarea>,

----

Code Postal,
,

----

Ville,
,

----

Région,
<select name="region" id="region">
<?php
foreach($tab_region as $k=>$v){
echo "<option value=\"$k\">$v</option>";
}
?>
</select>,

----

Téléphone,
,

----

Fax,
,

----

e-mail,
,

----

Site internet,
,

----

Rubrique,
<select name="rubrique" id="rubrique">
<?php
foreach($tab_region as $k=>$v){
echo "<option value=\"$k\">$v</option>";
}
?>
</select>,

----

Présentation,
<textarea name="presentation" cols="30" rows="6" id="presentation"></textarea>
5 lignes maximum,

----

Mots clés,
<textarea name="key" cols="30" rows="6" id="key"></textarea>,

----


</form>



<?php
// connexion à la base de données
mysql_connect("","","");
mysql_select_db("");


if(isset($_POST['submit']){
$nom = trim(htmlentities($_POST['nom'], ENT_QUOTES));
$adresse = trim(htmlentities($_POST['adresse'], ENT_QUOTES));
$postal = trim(htmlentities($_POST['cp'], ENT_QUOTES));
$ville = trim(htmlentities($_POST['ville'], ENT_QUOTES));
$region = trim(htmlentities($_POST['region'], ENT_QUOTES));
$tel = trim(htmlentities($_POST['tel'], ENT_QUOTES));
$fax = trim(htmlentities($_POST['fax'], ENT_QUOTES));
$email = trim(htmlentities($_POST['email'], ENT_QUOTES));
$lien = trim(htmlentities($_POST['lien'], ENT_QUOTES));
$rubrique = trim(htmlentities($_POST['rubrique'], ENT_QUOTES));
$presentation = trim(htmlentities($_POST['presentation'], ENT_QUOTES));
$keys = trim(htmlentities($_POST['keys'], ENT_QUOTES));

//construction de la requete d'ajout
$requete= "INSERT INTO annuaire (nom,adresse,postal,ville,region,rubrique,presentation,keys,telephone,fax,email,lien) VALUES ('".$nom."', '".$adresse."', '".$postal."', '".$ville."', '".$region."', '".$rubrique."', '".$presentation."', '".$keys."', '".$telephone."', '".$fax."', '".$email."', '".$lien."')";
//execution de la requete
$result=mysql_query($requete);
print_($result);
//affichage de la requete
echo "<center>Merci ! le professionnel a bien été ajoutée</center>";
//redirection vers la page d'accueil de l'administration
echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=index.php'>";
}
?>
0
mtrix000 Messages postés 31 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 1 novembre 2012
8 janv. 2010 à 02:03
<?php


$tab_region = array("Choississez une région",
"Alsace",
"Aquitaine",
"Auvergne",
"Basse Normandie",
"Bourgogne",
"Bretagne",
"Centre",
"Chanpagne-Ardenne",
"Corse",
"Franche-Comté",
"Haute Normandie",
"Ile-de-France",
"Languedoc-Roussillon",
"Limousin",
"Lorraine",
"Midi-Pyrénées",
"Nord-Pas-de-de-Calais",
"Pays de la Loire",
"Picardie",
"Poitou-Charentes",
"Provence",
"Côte d'Azur",
"Alpes",
"Rhône-Alpes");

$tab_rubrique = array("Choissisez une rubrique",
"Robes de Mariée",
"Costumes homme",
"Mode enfant",
"Robes de cocktail",
"Accessoires femme",
"Accessoires homme",
"Alliances, bijoux",
"Coiffure",
"Maquillage",
"Parfums",
"Manucure",
"Salons de beauté",
"Produits de beauté",
"Salles et lieux",
"Faire part",
"Décoration et fleurs",
"Traiteurs",
"Gâteaux",
"Vin et champagne",
"Dragées",
"Animation",
"Photos et vidéo",
"Location de véhicule",
"Accessoires de fête",
"Voyage de noces",
"Wedding planners");
?>


le code du formulaire :
<form name="form" id="form" method="post" action="verif-ajout-pro.php" onsubmit="return valider()">
Nom du pro.,
,

----

Adresse,
</textarea>,

----

Code Postal,
,

----

Ville,
,

----

Région,
<select name="region" id="region">
<?php
foreach($tab_region as $k=>$v){
echo "<option value=\"$k\">$v</option>";
}
?>
</select>,

----

Téléphone,
,

----

Fax,
,

----

e-mail,
,

----

Site internet,
,

----

Rubrique,
<select name="rubrique" id="rubrique">
<?php
foreach($tab_rubrique as $k=>$v){
echo "<option value=\"$k\">$v</option>";
}
?>
</select>,

----

Présentation,
<textarea name="presentation" cols="30" rows="6" id="presentation"></textarea>
5 lignes maximum,

----

Mots clés,
<textarea name="key" cols="30" rows="6" id="key"></textarea>,

----


</form>



<?php
// connexion à la base de données
mysql_connect("","","");
mysql_select_db("");


if(isset($_POST['submit']){
$nom = trim(htmlentities($_POST['nom'], ENT_QUOTES));
$adresse = trim(htmlentities($_POST['adresse'], ENT_QUOTES));
$postal = trim(htmlentities($_POST['cp'], ENT_QUOTES));
$ville = trim(htmlentities($_POST['ville'], ENT_QUOTES));
$region = trim(htmlentities($_POST['region'], ENT_QUOTES));
$tel = trim(htmlentities($_POST['tel'], ENT_QUOTES));
$fax = trim(htmlentities($_POST['fax'], ENT_QUOTES));
$email = trim(htmlentities($_POST['email'], ENT_QUOTES));
$lien = trim(htmlentities($_POST['lien'], ENT_QUOTES));
$rubrique = trim(htmlentities($_POST['rubrique'], ENT_QUOTES));
$presentation = trim(htmlentities($_POST['presentation'], ENT_QUOTES));
$keys = trim(htmlentities($_POST['keys'], ENT_QUOTES));

//construction de la requete d'ajout
$requete= "INSERT INTO annuaire (nom,adresse,postal,ville,region,rubrique,presentation,keys,telephone,fax,email,lien) VALUES ('".$nom."', '".$adresse."', '".$postal."', '".$ville."', '".$region."', '".$rubrique."', '".$presentation."', '".$keys."', '".$telephone."', '".$fax."', '".$email."', '".$lien."')";
//execution de la requete
$result=mysql_query($requete);
print_($result);
//affichage de la requete
echo "<center>Merci ! le professionnel a bien été ajoutée</center>";
//redirection vers la page d'accueil de l'administration
echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=index.php'>";
}
?>
0
mtrix000 Messages postés 31 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 1 novembre 2012
8 janv. 2010 à 02:05
désolé davoir fait le post 2 fois, le deusiéme est fonctionnel ;)
0
tophe33 Messages postés 10 Date d'inscription dimanche 2 avril 2006 Statut Membre Dernière intervention 13 janvier 2010
8 janv. 2010 à 07:28
Merci à tous.
J'ai corrigé la syntax de syndrael et ça me donne cette erreur : Le compte de colonne ne correspond pas au compte de valeur à la rangée 1 (Column count doesn't match value count at row 1).
mtrix : j'ai une erreur de syntax à ce niveau : if(isset($_POST['submit']){

J'ai retouché un peu le code de mon fichier verif_ajout_pro.php
J'ai maintenant une nouvelle erreur :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'keys,telephone,fax,email,lien) VALUES ('Kombawa films', '1, rue du Château', ''' at line 1

Je n'y comprends plus rien
Voici le code que j'ai intégré :
<?php
// connexion à la base de données
mysql_connect("","","");
mysql_select_db("");
//construction de la requete d'ajout
$requete= "INSERT INTO annuaire (nom,adresse,postal,ville,region,rubrique,presentation,keys,telephone,fax,email,lien) VALUES ('".$nom."', '".$adresse."', '".$postal."', '".$ville."', '".$region."', '".$rubrique."', '".$presentation."', '".$keys."', '".$telephone."', '".$fax."', '".$email."', '".$lien."')";
$result=mysql_query($requete) or die(mysql_error());
print_($result);
//affichage de la requete
echo "<center>Merci ! le professionnel a bien été ajoutée</center>";
//redirection vers la page d'accueil de l'administration
echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=index.php'>";
?>


Je ne sais pas si il n'y a pas un problème compatibilité entre mon code et la base, mon code pourrait il être obsolète ?
0
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
8 janv. 2010 à 07:53
Re,

keys est un mot réservé Mysql.
Tu ferais mieux de renommer ce champ.
Au pire tu peux l'entourer comme ça `keys`



Kohntark -
0
tophe33 Messages postés 10 Date d'inscription dimanche 2 avril 2006 Statut Membre Dernière intervention 13 janvier 2010
8 janv. 2010 à 08:18
kohntark. merci beaucoup.
j'ai changé keys par mot_cle et là.... ça marche.
j'ai juste un dernier problème, dans ma base, les caractères avec accents ne s'affiche pas. exemple : forêt = forêt. Cela vient til du choix de l'interclassement ? j'ai choisi latin1_general_cs.
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 19
8 janv. 2010 à 09:17
Non, pas fatigué..
Ma mauvaise foi légendaire mettra en avant l'heure de la pause kawa, donc taper d'une main n'est pas mon fort. Puis (légendaire la mauvaise foi..), insérer des erreurs dans une solution est aussi un moyen de faire réagir mon interlocuteur. Le copier-coller simple n'apporte rien..
Allez je refile manger ma clémentine.
S.
0
tophe33 Messages postés 10 Date d'inscription dimanche 2 avril 2006 Statut Membre Dernière intervention 13 janvier 2010
8 janv. 2010 à 09:20
bon j'ai trouvé le problème des caractère.
encore merci à tous
0
fbsm Messages postés 3 Date d'inscription vendredi 6 février 2015 Statut Membre Dernière intervention 6 février 2015
6 févr. 2015 à 14:50
je pense que sais un peu répétitive mais vous devez redéfinir les variable avant de coder la requête sql après la connexion à la base de données.essaiyer voir si ça aussi va marcher
0