Page 1 sur 2

Insérer dans une BDD

Posté : 17 mai 2006, 08:50
par béka
Bonjour tout le monde, alors voila mon problème, j'ai fait un formulaire d'inscription qui théoriquement demande des champs a remplir par un société puis après avoir validé, insère ces champs dans la base et envoie un mail de confirmation récapitulant toutes les données saisies par l'entreprise. Mais le problème c'est que les donénes ne sont pas insérées dans la base mais par contre le mail est bien envoyé.

Voici le code de ma page :
<?php
/*********************************************************************/
/*				  Ajout des informations dans la base			     */
/*********************************************************************/

$db = mysql_connect("localhost", "root");
mysql_select_db("hippolyte",$db);


	$nom_entreprise=$_POST['nom_entreprise'];
	$adresse_entreprise=$_POST['adresse_entreprise'];
	$ville_entreprise=$_POST['ville_entreprise'];
	$cp_entreprise=$_POST['cp_entreprise'];
	$email_entreprise=$_POST['email_entreprise'];
	$tel_entreprise=$_POST['tel_entreprise'];
	$fax_entreprise=$_POST['fax_entreprise'];
	$site_entreprise=$_POST['site_entreprise'];
	$login_entreprise=$_POST['login_entreprise'];
	$password_entreprise=$_POST['password_entreprise'];

if (!ereg("^.+@.+\\..+$",$email_entreprise)) //on vérifie la validité de l'email
{
	echo "<p class=\"Texte2\">Votre email n'est pas valide, corrigez, svp <br></p>";
	echo "<center><p class=\"Texte2\"><a href=\"../inscription.php\">Recommencer</a></p></center>"; 
}
else 
{
	if (!ereg("^[0-9 -.]{14,14}",$tel_entreprise)) //on vérifie la validité du numéro de tel
	 {
		echo "<p class=\"Texte2\">Votre numéro de téléphone n'est pas valide, corrigez, svp <br></p>";
		echo "<center><p class=\"Texte2\"><a href=\"../inscription.php\">Recommencer</a></p></center>"; 
	 }
}

//on vérifie si le login choisi existe déja
$sql = "SELECT login_entreprise FROM entreprise WHERE login_entreprise='$login_entreprise'";
$resultat = mysql_query($sql);
$num = mysql_num_rows($resultat);
		if ($num > 0)
		{
		echo "login deja utilisé";
			if (!headers_sent()) 
			{
			header ("Location: inscription.php");
			exit();
			}
		}
		
//on insère dans la base
$query = "INSERT INTO entreprise VALUES ('','$nom_entreprise', '$adresse_entreprise', '$ville_entreprise', '$cp_entreprise', '$email_entreprise', '$tel_entreprise', '$fax_entreprise', '$site_entreprise', '$login_entreprise', '$password_entreprise')";

$result = mysql_query($query);

mysql_close($db);
echo "<p class=\"Texte2\"><img src=\"../../graphisme/icones/cle.jpg\">vos données ont bien été ajoutées dans la base, vous recevrez un mail vous récapitulant toutes les informations.</p>";

//envoyer un mail au nouveau membre
$message = "Un nouveau compte de membre viens d'être créé pour vous.<br>
Voila les renseignements saisis : <br>
Nom de la société : $nom_entreprise<br>
Adresse de votre société : <br><b>$adresse_entreprise<br>$cp_entreprise<br>$ville_entreprise</b><br>
Numéro de téléphone et de fax : $tel_entreprise ; $fax_entreprise<br>
Votre site Internet : $site_entreprise<br><br>
<b>Votre identificateur et votre mot de passe sont : \n\n\t$login_entreprise\n\t$password_entreprise.<br></b>
Nous appécions l'intérêt que vous portez à notre établissement. <br>
Si vous avez des questions, n'hésitez pas à nous contacter.";

$sujet = "Nouveau compte au lycée Hippolyte Fontaine";

$adresse = $email_entreprise;

$entete = "De : [email protected]<br>";

$mailsend=mail("$adresse","$sujet","$message","$entete");
?>
Quelqu'un peut-il m'aider et me dire d'où vient l'erreur que j'ai fait.
Merci

Posté : 17 mai 2006, 09:18
par skyangel
Regarde deja si ta requete sql est bonne.
Fais un echo $query et mets en commentaire le $result qui suit. Ainsi tu vois si ta requete est correctement faite.
Personnellement, les variables php je les sorts des guillements.


Cordialement

Posté : 17 mai 2006, 09:23
par béka
ma requete a l'air correct, elle s'affiche bien avec la commande echo

Posté : 17 mai 2006, 09:27
par béka
je viens d'essayer également sans les guillements, ca ne marche pas non plus.

Posté : 17 mai 2006, 09:28
par charabia
Vérifies que toutes tes variables sont bien récupérées.

Si oui, testes ta requête sous phpMyAdmin directement pour voir si tu as des résultats.

Posté : 17 mai 2006, 09:32
par skyangel
verifie par des structures de controles que tes variables sont bien renseignés
if(empty($_POST['nom_entreprise']))
{
$nom_entreprise=false;
}
else
{
$nom_entreprise=$_POST['nom_entreprise']
}
fais ca pour chaque variable obligatoire

Posté : 17 mai 2006, 09:34
par béka
je viens de faire le test, toutes les variables sont bien récupéres.
Puisque dans le mail tout apparait correctement.
Ce n'est pas grave si un champ est vide, il enregistrement théoriquement un champ vide dans la base.

Posté : 17 mai 2006, 09:35
par charabia
Quelles est la structure de ta table ?

Posté : 17 mai 2006, 09:37
par skyangel
dans ta fonction mysql_connect il te manque le password a renseigne je ne sais pas si c'est obligatoire mais le mien est code comme ca.

mysql_connect($hote,$utilisateur,$password);

Posté : 17 mai 2006, 09:38
par skyangel
dans ton cas l'appliquer comme ca peut etre:
mysql_connect("localhost", "root","");

Posté : 17 mai 2006, 09:39
par béka
voila comment est faite la table :

Code : Tout sélectionner

CREATE TABLE `entreprise` ( `id` int(5) NOT NULL default '0', `nom_entreprise` varchar(30) NOT NULL default '', `adresse_entreprise` text NOT NULL, `ville_entreprise` varchar(30) NOT NULL default '', `cp_entreprise` int(5) NOT NULL default '0', `email_entreprise` varchar(40) NOT NULL default '', `tel_entreprise` varchar(14) NOT NULL default '', `fax_entreprise` varchar(14) NOT NULL default '', `site_entreprise` varchar(50) NOT NULL default '', `login_entreprise` varchar(20) NOT NULL default '', `password_entreprise` varchar(10) NOT NULL default '', PRIMARY KEY (`id`) )

Posté : 17 mai 2006, 09:43
par béka
il ne me semble pas que le champs password dans mysql_connect soit obligatoire car dans mes autrees pages, je ne l'utilise pas

Posté : 17 mai 2006, 09:45
par skyangel
autant pour moi par habitude je le mets :)

Posté : 17 mai 2006, 09:48
par charabia
1er test :
$query = "INSERT INTO entreprise(id,nom_entreprise,adresse_entreprise,ville_entreprise,cp_entreprise,email_entreprise,tel_entreprise,fax_entreprise,site_entreprise,login_entreprise,password_entreprise) VALUES('','$nom_entreprise','$adresse_entreprise','$ville_entreprise','$cp_entreprise','$email_entreprise','$tel_entreprise','$fax_entreprise','$site_entreprise','$login_entreprise','$password_entreprise')";

2è test :
$query = "INSERT INTO entreprise(id,nom_entreprise,adresse_entreprise,ville_entreprise,cp_entreprise,email_entreprise,tel_entreprise,fax_entreprise,site_entreprise,login_entreprise,password_entreprise) VALUES('','".$_POST['nom_entreprise']."','".$_POST['adresse_entreprise']."','".$_POST['ville_entreprise']."','".$_POST['cp_entreprise']."','".$_POST['email_entreprise']."','".$_POST['tel_entreprise']."','".$_POST['fax_entreprise']."','".$_POST['site_entreprise']."','".$_POST['login_entreprise']."','".$_POST['password_entreprise']."')";

Posté : 17 mai 2006, 09:57
par béka
je crois savoir d'ou vien le probleme
j'ai essayer d'insérer de deux maniere :
avec un numéro de tel qui commence par 13.80.... et un numéro de tel qui commence par 03.80...
Dans le premier cas, les données sont ajoutées dans la base, dans le second, rien n'est inséré.
Comment résoudre ce probleme?