Insérer dans une BDD

Mammouth du PHP | 536 Messages

17 mai 2006, 08:50

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

skyangel
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 09:18

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

Mammouth du PHP | 536 Messages

17 mai 2006, 09:23

ma requete a l'air correct, elle s'affiche bien avec la commande echo

Mammouth du PHP | 536 Messages

17 mai 2006, 09:27

je viens d'essayer également sans les guillements, ca ne marche pas non plus.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mai 2006, 09:28

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.

skyangel
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 09:32

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

Mammouth du PHP | 536 Messages

17 mai 2006, 09:34

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.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mai 2006, 09:35

Quelles est la structure de ta table ?

skyangel
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 09:37

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);

skyangel
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 09:38

dans ton cas l'appliquer comme ca peut etre:
mysql_connect("localhost", "root","");

Mammouth du PHP | 536 Messages

17 mai 2006, 09:39

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`) )

Mammouth du PHP | 536 Messages

17 mai 2006, 09:43

il ne me semble pas que le champs password dans mysql_connect soit obligatoire car dans mes autrees pages, je ne l'utilise pas

skyangel
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 09:45

autant pour moi par habitude je le mets :)

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mai 2006, 09:48

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']."')";

Mammouth du PHP | 536 Messages

17 mai 2006, 09:57

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?