Enregistrement des infos d'un formulaire dans une BDD (encore!)

Eléphanteau du PHP | 29 Messages

16 juin 2009, 09:32

Bonjour à tous !

J'ai un formulaire d'inscription qui une fois validé est censé débouché sur une page confirmant l'enregistrement et c'est cette même page qui a un petit beug
<?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 professionnels</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('raison_sociale').value.length>0)
&&(document.getElementById('siret').value.length>0)
&&(document.getElementById('nom').value.length>0)
&&(document.getElementById('prenom').value.length>0)
&&(document.getElementById('fonction').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 professionnels</p>
        <div class="line_1"></div>
        <div class="indent">
        <p align="center">&nbsp;</p>
        
        
<?php

if(isset($_POST['nom'])) { // Si on envoie le formulaire

// Connexion à la base de données "configurateur_de_site"
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
$raison_sociale = $_POST['raison_sociale'];
$siret = $_POST['siret'];
$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 professionnels WHERE nom_du_demandeur = '". $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 = $requete = "INSERT INTO professionnels(raison_sociale,siret,nom_du_demandeur,prenom_du_demandeur,fonction_du_demandeur,telephone,fax,adresse,code_postal,ville,adresse_facturation)
	VALUES('".$raison_sociale."','".$siret."','".$nom."', '".$prenom."', '".$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 sur le site.'; //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>

Il doit y avoir une légère erreur mais j'ai beau lire et relire je ne la vois pas !

Merci d'avance !

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 juin 2009, 09:37

Bonjour,

Quelle est l'erreur que tu as ?

Sur la ligne 86 : $requete = $requete = me semble bizarre

Eléphanteau du PHP | 29 Messages

16 juin 2009, 09:51

En fait quand je fais "valider" ça ne m'amène pas sur une autre page ...

Hier j'ai fait une page quasiment identique, du coup j'ai repris le même code et l'ai adapté à cette situation mais ça ne veut pas marcher :(

Je ne sais pas sur quelle ligne est l'erreur puisqu'il ne me l'indique pas :roll:
Du coup je rame :?

ViPHP
ViPHP | 3300 Messages

16 juin 2009, 09:51

bizarre oui, mais pas dangereux :)
Fait du php depuis que ca existe ou presque :)

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 juin 2009, 09:54

En fait le code que tu nous as mis plus haut, c'est quelle page ? Je ne vois pas de formulaire, ni de redirection. C'est après insertion que tu veux faire le renvoi non ?

Eléphanteau du PHP | 29 Messages

16 juin 2009, 09:55

A la base j'ai cette page là :
<?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>Professionnels</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('raison_sociale').value.length>0)
&&(document.getElementById('siret').value.length>0)
&&(document.getElementById('nom').value.length>0)
&&(document.getElementById('prenom').value.length>0)
&&(document.getElementById('fonction').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">Professionnels</p>
        <div class="line_1"></div>
        <div class="indent">
        <p align="center">&nbsp;</p>
        
		<form action="enregistrement_pros.php" method="post" name="form_contacts" id="form_contacts">
		
			<label for="raison_sociale">Raison Sociale :</label> <input type="text" name="raison_sociale" id="raison_sociale" /> <br>
			<label for="siret">Siret :</label> <input type="text" name="siret" id="siret" /> <br>	
			<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="adresse">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><br>
			*<i>si différente de l'adresse physique</i>
			<br> <br>
			
			</form>
			
			<p align="left"> <input type="submit" value="S'enregistrer" /> </p>
        </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 cette page, qui est en fait le formulaire, doit renvoyé l'utilisateur sur la page que j'ai mise en haut du topic

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 juin 2009, 10:00

if(isset($_POST['nom'])) { // Si on envoie le formulaire
<input type="submit" value="S'enregistrer" />
Tu envois le formulaire lorsque tu cliques sur le bouton submit. Là tu détectes sur NOM et non le submit (sur lequel il te faut donner un nom)
if(isset($_POST['envoi']) && $_POST['envoi']=="S'enregistrer")
<input type="submit" value="S'enregistrer" name="envoi" />

Eléphanteau du PHP | 29 Messages

16 juin 2009, 10:04

Ah OK OK ! :D

J'ai remplacé ce qui n'allait pas par ce que tu m'as dit mais ça ne marche pas pour autant :oops:

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 juin 2009, 10:07

ton premier code est bien la page enregistrement_pros.php ?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 juin 2009, 10:10

Heu je viens de voir l'erreur.

Regardes bien ton premier code, tu as fermé le formulaire avant ton bouton submit, normal que ça ne marche pas ;)

Eléphanteau du PHP | 29 Messages

16 juin 2009, 10:11

Mon formulaire = pros.php & la page suivante ( dont le code est tout en haut de ce topic ) = enregistrement_pros.php :D

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 juin 2009, 10:12

Je t'ai répondu plus haut pour l'erreur ;)

Eléphanteau du PHP | 29 Messages

16 juin 2009, 10:13

J'y jette un coup et je te tiens au courant de suite 8-)

EDIT : Bien vuu !!!!!!!

Bon maintenant il me trouve autre chose :

Parse error: parse error in C:\wamp\www\ITservices\Configurateur_de_site\enregistrement_pros.php on line 115

Sur la dite ligne il y a juste une"}" ...
En trop peut être ?

EDIT 2 : J'ai réussi à corriger !!!!!
WOWWW !!!!

Merci beaucoup !!!!!!!!!!!!!!!!

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 juin 2009, 10:20

De rien ;) N'oublie pas le Résolu !