Bonjour tout le monde !
J'ai deux fichiers. Le premier (particuliers.php) est un formulaire :
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Particuliers</title>
<link href="../style/style.css" rel="stylesheet" type="text/css" />
<link href="../style/layout.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
//La fonction JavaScript vérifie si les champs obligatoires du formulaire ont été bien remplis
function envoie(formulaire) {
if ( (document.getElementById('nom').value.length>0)
&&(document.getElementById('prenom').value.length>0)
&&(document.getElementById('fontion').value.length>0)
&&(document.getElementById('telephone').value.length>0)
&&(document.getElementById('fax').value.length>0)
&&(document.getElementById('adresse').value.length>0)
&&(document.getElementById('code_postal').value.length>0)
&&(document.getElementById('ville').value.length>0)
){
formulaire.submit();
} else
alert('Vous devez remplir tous les champs !');
}
</script>
</head>
<body id="page1">
<div class="min_width">
<div id="site_center">
<div id="main">
<!-- Contenu -->
<div id="content">
<div class="line_1"></div>
<p align="center" class="sstitre">Particuliers</p>
<div class="line_1"></div>
<div class="indent">
<p align="center"> </p>
<form action="enregistrement_particuliers.php" method="post" name="form_contacts" id="form_contacts">
<label for="nom">Nom du demandeur :</label> <input type="text" name="nom" id="nom" /> <br>
<label for="prenom">Prénom du demandeur :</label> <input type="text" name="prenom" id="prenom" /> <br>
<label for="fonction">Fonction du demandeur :</label> <input type="text" name="fonction" id="fonction" /><br />
<label for="telephone">Téléphone :</label> <input type="text" name="telephone" id="telephone" /> <br>
<label for="fax">Fax :</label> <input type="text" name="fax" id="fax" /> <br>
<label for="adresse1">Adresse :</label> <input type="text" name="adresse" id="adresse" /><br />
<label for="code_postal">Code postal :</label> <input type="text" name="code_postal" id="code_postal" /> <br>
<label for="ville">Ville :</label> <input type="text" name="ville" id="ville" /> <br>
<label for="adresse_facturation">Adresse de facturation*:</label> <input type="text" name="adresse_facturation" id="adresse_facturation" /><br />
<br> <br>
<p align="left"> <input type="submit" value="se connecter" /> </p>
<br><br><br>
*<i>si différente de l'adresse physique</i>
</form>
</div>
<div id="Layer1" style="position:absolute; left:381px; top:26px; width:48px; height:37px; z-index:1"><a href="../Configurateur_de_site/choix.php"><img src="../images/retour.jpg" alt="" width="19" height="23" /></a></div>
</div>
<!-- footer -->
</div>
</div>
</div>
</body>
</html>
Et un fichier (enregistrement_particuliers) qui est censé transférr les infos du formulaire dans la BDD :
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Enregistrement particuliers</title>
<link href="../style/style.css" rel="stylesheet" type="text/css" />
<link href="../style/layout.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
//La fonction JavaScript vérifie si les champs obligatoires du formulaire ont été bien remplis
function envoie(formulaire) {
if ( (document.getElementById('nom').value.length>0)
&&(document.getElementById('prenom').value.length>0)
&&(document.getElementById('fontion').value.length>0)
&&(document.getElementById('telephone').value.length>0)
&&(document.getElementById('fax').value.length>0)
&&(document.getElementById('adresse').value.length>0)
&&(document.getElementById('code_postal').value.length>0)
&&(document.getElementById('ville').value.length>0)
){
formulaire.submit();
} else
alert('Vous devez remplir tous les champs !');
}
</script>
</head>
<body id="page1">
<div class="min_width">
<div id="site_center">
<div id="main">
<!-- Contenu -->
<div id="content">
<div class="line_1"></div>
<p align="center" class="sstitre">Enregistrement particuliers</p>
<div class="line_1"></div>
<div class="indent">
<p align="center"> </p>
<?php
if(isset($_POST['nom'])) { // Si on envoie le formulaire
// Connexion à la base de données "externalisation"
mysql_connect("localhost", "root");
mysql_select_db("configurateur_de_site");
// On récupère les $_POST et on en fait des variables
$_POST = array_map('mysql_real_escape_string', $_POST); // on applique mysql_real_escape_string sur tout le tableau $_POST
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$fonction = $_POST['fonction'];
$telephone = $_POST['telephone'];
$fax = $_POST['fax'];
$adresse = $_POST['adresse'];
$code_postal = $_POST['code_postal'];
$ville = $_POST['ville'];
$adresse_facturation = $_POST['adresse_facturation']
// On part du principe que le nom d'utilisateur est unique, on doit vérifier qu'il n'existe pas déjà ans la table
$requete = "SELECT COUNT(*) AS nb FROM formulaire WHERE utilisateur = '". $nom ."'"; // On crée la requête
$resultat = mysql_query($requete) or die('ERREUR SQL : '. $requete . mysql_error()); // On exécute la requête
$donnees = mysql_fetch_array($resultat); // On crée un tableau pour récupérer la valeur que renvoie la requête
$nombre = $donnees['nb']; // On crée une variable qui contiendra le nombre de résultats renvoyé par la requête
if($nombre == 0) { // Si la variable renvoie 0 c'est que le nom d'utilisateur n'existe pas dans la table donc on peut l'enregistrer
$requete = "INSERT INTO formulaire VALUES('". $nom ."', '". $prenom ."', 1, '". $fonction ."', '". $telephone ."', '". $fax ."', '". $adresse ."', '". $code_postal ."', '". $ville ."', '". $adresse_facturation ."')";
$resultat = mysql_query($requete) or die('ERREUR SQL : '. $requete . mysql_error()); // on exécute la requête
echo 'Enregistrement effectué. Vous êtes maintenant inscrit. Merci !<br />';
// On crée le message email
$msg1 = 'Merci '. $nom .' '. $prenom . pour votre inscription et bienvenue sur le site !;//Message pour le nouveau membre
$msg2 = 'Un nouveau membre s\'est inscrit: '. $nom; //Message pour le webmaster
$recipient = '[email protected]'; //Adresse mail du webmaster
ini_set("sendmail_from",$recipient);
$subject = 'Formulaire d\'inscription'; //On met le sujet du mail
$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$header .= "From: ". $email ."";
$mail1 = mail($recipient, $subject, $msg2, $header); //Mail envoyé au webmaster
$mail2 = mail($email, $subject, $msg1, $header); //Mail envoyé au nouveau membre
if($mail1 && $mail2 == true) {
echo 'Vous allez recevoir un mail avec vos informations.';
} else {
echo 'Erreur dans l\'envoi du mail .';
}
} else { // Sinon ce nom existe déjà, on insert aucune donnée
echo 'L\'utilisateur '. $nom .' existe déjà. Veuillez vous réinscrire sous un autre nom d\' utilisateur.';
}
mysql_close(); // On ferme la connexion
}
?>
</div>
<div id="Layer1" style="position:absolute; left:381px; top:26px; width:48px; height:37px; z-index:1"><a href="./../index.php"><img src="../images/retour.jpg" alt="" width="19" height="23" /></a></div>
</div>
<!-- footer -->
</div>
</div>
</div>
</body>
</html>
Mais ça ne veut pas s'enregistrer dans ma BDD (phpMyAdmin) ...
Il me trouve une erreur sur la ligne 76 de mon deuxieme fichier (enregistrement_particuliers)
Quelqu'un peut-il m'aider?
PS : Est-ce que le problème ne viendrait pas du fait que dans ma BDD "configurateur_de_site" il y ait 2 tables : une "particulier" ( c'est sur celle ci que je travaille actuellement ) et une "professionnel" dans lesquelles on retrouve quasiment tous les mêmes champs avec des noms identiques...
Je viens d'y penser... Mais si le prob' vient de là, je ne sais pas comment y remédier !
<souligne>EDIT</souligne> : J'ajoute ci après la structure de ma BDD "configurateur_de_site", table "particuliers :
--
-- Structure de la table `particuliers`
--
CREATE TABLE IF NOT EXISTS `particuliers` (
`Nom_du_demandeur` text NOT NULL,
`Prenom_du_demandeur` text NOT NULL,
`Fonction_du_demandeur` text NOT NULL,
`Telephone` int(10) NOT NULL,
`Fax` int(10) NOT NULL,
`Adresse` varchar(100) NOT NULL,
`Code postal` int(5) NOT NULL,
`Ville` text NOT NULL,
`Adresse_facturation` varchar(100) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `particuliers`
--
Et les modififications apportés à mon code :
// On part du principe que le nom d'utilisateur est unique, on doit vérifier qu'il n'existe pas déjà ans la table
<gras>$requete = "SELECT COUNT(*) AS nb FROM particuliers WHERE nom_du_demandeur = '". $nom ."'"; // On crée la requête</gras>$resultat = mysql_query($requete) or die('ERREUR SQL : '. $requete . mysql_error()); // On exécute la requête
$donnees = mysql_fetch_array($resultat); // On crée un tableau pour récupérer la valeur que renvoie la requête
$nombre = $donnees['nb']; // On crée une variable qui contiendra le nombre de résultats renvoyé par la requête
if($nombre == 0) { // Si la variable renvoie 0 c'est que le nom d'utilisateur n'existe pas dans la table donc on peut l'enregistrer
$requete = "INSERT INTO particuliers VALUES('". $nom ."', '". $prenom ."', 1, '". $fonction ."', '". $telephone ."', '". $fax ."', '". $adresse ."', '". $code_postal ."', '". $ville ."', '". $adresse_facturation ."')";
$resultat = mysql_query($requete) or die('ERREUR SQL : '. $requete . mysql_error()); // on exécute la requête
echo 'Enregistrement effectué. Vous êtes maintenant inscrit. Merci !<br />';
Mais la ligne
en gras pose problème!
Bonjour tout le monde !
J'ai deux fichiers. Le premier (particuliers.php) est un formulaire :
[php]<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Particuliers</title>
<link href="../style/style.css" rel="stylesheet" type="text/css" />
<link href="../style/layout.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
//La fonction JavaScript vérifie si les champs obligatoires du formulaire ont été bien remplis
function envoie(formulaire) {
if ( (document.getElementById('nom').value.length>0)
&&(document.getElementById('prenom').value.length>0)
&&(document.getElementById('fontion').value.length>0)
&&(document.getElementById('telephone').value.length>0)
&&(document.getElementById('fax').value.length>0)
&&(document.getElementById('adresse').value.length>0)
&&(document.getElementById('code_postal').value.length>0)
&&(document.getElementById('ville').value.length>0)
){
formulaire.submit();
} else
alert('Vous devez remplir tous les champs !');
}
</script>
</head>
<body id="page1">
<div class="min_width">
<div id="site_center">
<div id="main">
<!-- Contenu -->
<div id="content">
<div class="line_1"></div>
<p align="center" class="sstitre">Particuliers</p>
<div class="line_1"></div>
<div class="indent">
<p align="center"> </p>
<form action="enregistrement_particuliers.php" method="post" name="form_contacts" id="form_contacts">
<label for="nom">Nom du demandeur :</label> <input type="text" name="nom" id="nom" /> <br>
<label for="prenom">Prénom du demandeur :</label> <input type="text" name="prenom" id="prenom" /> <br>
<label for="fonction">Fonction du demandeur :</label> <input type="text" name="fonction" id="fonction" /><br />
<label for="telephone">Téléphone :</label> <input type="text" name="telephone" id="telephone" /> <br>
<label for="fax">Fax :</label> <input type="text" name="fax" id="fax" /> <br>
<label for="adresse1">Adresse :</label> <input type="text" name="adresse" id="adresse" /><br />
<label for="code_postal">Code postal :</label> <input type="text" name="code_postal" id="code_postal" /> <br>
<label for="ville">Ville :</label> <input type="text" name="ville" id="ville" /> <br>
<label for="adresse_facturation">Adresse de facturation*:</label> <input type="text" name="adresse_facturation" id="adresse_facturation" /><br />
<br> <br>
<p align="left"> <input type="submit" value="se connecter" /> </p>
<br><br><br>
*<i>si différente de l'adresse physique</i>
</form>
</div>
<div id="Layer1" style="position:absolute; left:381px; top:26px; width:48px; height:37px; z-index:1"><a href="../Configurateur_de_site/choix.php"><img src="../images/retour.jpg" alt="" width="19" height="23" /></a></div>
</div>
<!-- footer -->
</div>
</div>
</div>
</body>
</html>[/php]
Et un fichier (enregistrement_particuliers) qui est censé transférr les infos du formulaire dans la BDD :
[php]<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Enregistrement particuliers</title>
<link href="../style/style.css" rel="stylesheet" type="text/css" />
<link href="../style/layout.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
//La fonction JavaScript vérifie si les champs obligatoires du formulaire ont été bien remplis
function envoie(formulaire) {
if ( (document.getElementById('nom').value.length>0)
&&(document.getElementById('prenom').value.length>0)
&&(document.getElementById('fontion').value.length>0)
&&(document.getElementById('telephone').value.length>0)
&&(document.getElementById('fax').value.length>0)
&&(document.getElementById('adresse').value.length>0)
&&(document.getElementById('code_postal').value.length>0)
&&(document.getElementById('ville').value.length>0)
){
formulaire.submit();
} else
alert('Vous devez remplir tous les champs !');
}
</script>
</head>
<body id="page1">
<div class="min_width">
<div id="site_center">
<div id="main">
<!-- Contenu -->
<div id="content">
<div class="line_1"></div>
<p align="center" class="sstitre">Enregistrement particuliers</p>
<div class="line_1"></div>
<div class="indent">
<p align="center"> </p>
<?php
if(isset($_POST['nom'])) { // Si on envoie le formulaire
// Connexion à la base de données "externalisation"
mysql_connect("localhost", "root");
mysql_select_db("configurateur_de_site");
// On récupère les $_POST et on en fait des variables
$_POST = array_map('mysql_real_escape_string', $_POST); // on applique mysql_real_escape_string sur tout le tableau $_POST
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$fonction = $_POST['fonction'];
$telephone = $_POST['telephone'];
$fax = $_POST['fax'];
$adresse = $_POST['adresse'];
$code_postal = $_POST['code_postal'];
$ville = $_POST['ville'];
$adresse_facturation = $_POST['adresse_facturation']
// On part du principe que le nom d'utilisateur est unique, on doit vérifier qu'il n'existe pas déjà ans la table
$requete = "SELECT COUNT(*) AS nb FROM formulaire WHERE utilisateur = '". $nom ."'"; // On crée la requête
$resultat = mysql_query($requete) or die('ERREUR SQL : '. $requete . mysql_error()); // On exécute la requête
$donnees = mysql_fetch_array($resultat); // On crée un tableau pour récupérer la valeur que renvoie la requête
$nombre = $donnees['nb']; // On crée une variable qui contiendra le nombre de résultats renvoyé par la requête
if($nombre == 0) { // Si la variable renvoie 0 c'est que le nom d'utilisateur n'existe pas dans la table donc on peut l'enregistrer
$requete = "INSERT INTO formulaire VALUES('". $nom ."', '". $prenom ."', 1, '". $fonction ."', '". $telephone ."', '". $fax ."', '". $adresse ."', '". $code_postal ."', '". $ville ."', '". $adresse_facturation ."')";
$resultat = mysql_query($requete) or die('ERREUR SQL : '. $requete . mysql_error()); // on exécute la requête
echo 'Enregistrement effectué. Vous êtes maintenant inscrit. Merci !<br />';
// On crée le message email
$msg1 = 'Merci '. $nom .' '. $prenom . pour votre inscription et bienvenue sur le site !;//Message pour le nouveau membre
$msg2 = 'Un nouveau membre s\'est inscrit: '. $nom; //Message pour le webmaster
$recipient = '
[email protected]'; //Adresse mail du webmaster
ini_set("sendmail_from",$recipient);
$subject = 'Formulaire d\'inscription'; //On met le sujet du mail
$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$header .= "From: ". $email ."";
$mail1 = mail($recipient, $subject, $msg2, $header); //Mail envoyé au webmaster
$mail2 = mail($email, $subject, $msg1, $header); //Mail envoyé au nouveau membre
if($mail1 && $mail2 == true) {
echo 'Vous allez recevoir un mail avec vos informations.';
} else {
echo 'Erreur dans l\'envoi du mail .';
}
} else { // Sinon ce nom existe déjà, on insert aucune donnée
echo 'L\'utilisateur '. $nom .' existe déjà. Veuillez vous réinscrire sous un autre nom d\' utilisateur.';
}
mysql_close(); // On ferme la connexion
}
?>
</div>
<div id="Layer1" style="position:absolute; left:381px; top:26px; width:48px; height:37px; z-index:1"><a href="./../index.php"><img src="../images/retour.jpg" alt="" width="19" height="23" /></a></div>
</div>
<!-- footer -->
</div>
</div>
</div>
</body>
</html>[/php]
Mais ça ne veut pas s'enregistrer dans ma BDD (phpMyAdmin) ...
Il me trouve une erreur sur la ligne 76 de mon deuxieme fichier (enregistrement_particuliers)
Quelqu'un peut-il m'aider?
PS : Est-ce que le problème ne viendrait pas du fait que dans ma BDD "configurateur_de_site" il y ait 2 tables : une "particulier" ( c'est sur celle ci que je travaille actuellement ) et une "professionnel" dans lesquelles on retrouve quasiment tous les mêmes champs avec des noms identiques...
Je viens d'y penser... Mais si le prob' vient de là, je ne sais pas comment y remédier !
<souligne>EDIT</souligne> : J'ajoute ci après la structure de ma BDD "configurateur_de_site", table "particuliers :
--
-- Structure de la table `particuliers`
--
CREATE TABLE IF NOT EXISTS `particuliers` (
`Nom_du_demandeur` text NOT NULL,
`Prenom_du_demandeur` text NOT NULL,
`Fonction_du_demandeur` text NOT NULL,
`Telephone` int(10) NOT NULL,
`Fax` int(10) NOT NULL,
`Adresse` varchar(100) NOT NULL,
`Code postal` int(5) NOT NULL,
`Ville` text NOT NULL,
`Adresse_facturation` varchar(100) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `particuliers`
--
Et les modififications apportés à mon code :
[php]// On part du principe que le nom d'utilisateur est unique, on doit vérifier qu'il n'existe pas déjà ans la table
<gras>$requete = "SELECT COUNT(*) AS nb FROM particuliers WHERE nom_du_demandeur = '". $nom ."'"; // On crée la requête</gras>$resultat = mysql_query($requete) or die('ERREUR SQL : '. $requete . mysql_error()); // On exécute la requête
$donnees = mysql_fetch_array($resultat); // On crée un tableau pour récupérer la valeur que renvoie la requête
$nombre = $donnees['nb']; // On crée une variable qui contiendra le nombre de résultats renvoyé par la requête
if($nombre == 0) { // Si la variable renvoie 0 c'est que le nom d'utilisateur n'existe pas dans la table donc on peut l'enregistrer
$requete = "INSERT INTO particuliers VALUES('". $nom ."', '". $prenom ."', 1, '". $fonction ."', '". $telephone ."', '". $fax ."', '". $adresse ."', '". $code_postal ."', '". $ville ."', '". $adresse_facturation ."')";
$resultat = mysql_query($requete) or die('ERREUR SQL : '. $requete . mysql_error()); // on exécute la requête
echo 'Enregistrement effectué. Vous êtes maintenant inscrit. Merci !<br />';[/php]
Mais la ligne [b]en gras[/b] pose problème!