Pb envoie mail et enregistrement mysql

Résolu/Fermé
dodo78 Messages postés 181 Date d'inscription samedi 3 décembre 2005 Statut Membre Dernière intervention 17 juin 2009 - 23 févr. 2008 à 13:27
dodo78 Messages postés 181 Date d'inscription samedi 3 décembre 2005 Statut Membre Dernière intervention 17 juin 2009 - 23 févr. 2008 à 13:57
Bonjour,


voila je crée un formullaire, est c'est valeurs entre sont envoyer par mail et enregistre dans une base de donnée mais je une belle erreurs ...

Column count doesn't match value count at row 1

mon code :
// je récupère les valeurs entre dans le formullaire

<?php
$societe = $_POST['societe'];
$famille = $_POST['famille'];
$fonction = $_POST['fonction'];
$email = $_POST['email'];
$rcs1 = $_POST['rcs1'];
$rcs2 = $_POST['rcs2'];
$rcs3 = $_POST['rcs3'];
$ville = $_POST['ville'];
$siret = $_POST['siret'];
$siret2 = $_POST['siret2'];
$tva = $_POST['tva'];
$ape = $_POST['ape'];
$com = $_POST['com'];
$tt = date('y-m-d');


?>

<?php
// Parametres mysql à remplacer par les vôtres
define('DB_SERVER', ''); // serveur mysql
define('DB_SERVER_USERNAME', ''); // nom d'utilisateur
define('DB_SERVER_PASSWORD', ''); // mot de passe
define('DB_DATABASE', ''); // nom de la base

// parametres email à remplacer par les vôtes
define('MAIL_DESTINATAIRE','adresse_mail'); // remplacer par votre email
define('MAIL_SUJET','sujet mail ');

$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;

// Connexion au serveur mysql
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
DB_SERVER_PASSWORD)
or die('Impossible de se connecter : ' . mysql_error());
// sélection de la base de données
mysql_select_db(DB_DATABASE, $connect);

// vérification des champs
if (empty($_POST['societe']))
$message .= "le nom de votre societe n'est pas remplit<br/>";
if (empty($_POST['famille']))
$message .= "Votre nom de famille n'est pas remplis<br/>";
if (empty($_POST['fonction']))
$message .= "Votre fonction dans l'entreprise n'est pas remplit<br/>";
if (empty($_POST['email']))
$message .= "Votre email n'est pas remplit<br/>";
if (empty($_POST['rcs1']))
$message .= "Votre rcs n'est pas remplit<br/>";
if (empty($_POST['rcs2']))
$message .= "Votre rcs n'est pas remplit<br/>";
if (empty($_POST['rcs3']))
$message .= "Votre rcs n'est pas remplit<br/>";
if (empty($_POST['ville']))
$message .= "Votre ville n'est pas remplit<br/>";
if (empty($_POST['siret']))
$message .= "Votre siret n'est pas remplit<br/>";
if (empty($_POST['siret2']))
$message .= "Votre siret n'est pas remplit<br/>";
if (empty($_POST['tva']))
$message .= "Votre tva est pas remplit<br/>";
if (empty($_POST['ape']))
$message .= "Votre ape n'est pas remplit<br/>";

// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {

echo $message;

// sinon c'est ok
} else {

// on enleve les slashes et espace inutiles
foreach($_POST as $index => $valeur) {
$$index = stripslashes(trim($valeur));
}

// on liste les centre d'interets en ligne
$interets = $_POST['interets'];
$sqlinterets = '';
for ($i=0; $i<count($interets); $i++)
{
$sqlinterets .= $interets[$i];
$sqlinterets .= ', ';
}


//Préparation de l'entête du mail
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "
."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";

// préparation du corps du mail
$mail_corps = "bonjour, \n";
$mail_corps .= "nom de la societe : $societe,nom de famille : $famille,fonction : $fonction,email : $email,rcs : $rcs1,$rcs2,$rcs3, ville : $ville,siret : $siret,$siret2, tva : $tva,code ape : $ape \n";
$mail_corps .= "commentaire : $com \n\n\n";
$mail_corps .= $comments;

// envoi du mail
$res_mail = mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete);


foreach($_POST as $index => $valeur) {
// utilisez addslashes() au lieu de mysql_real_escape_string()
// si vous n'etes pas sur PHP5 ou si la fonction pose probleme
$$index = mysql_real_escape_string(trim($valeur));
}

// insere les donnees dans mysql
$sql = "INSERT INTO ma-table VALUES('','$societe', '$famille', '$fonction', '$email', '$rcs1', '$rcs2', '$rcs3', '$ville','$siret','$siret2','$tva','$ape','$com','$tt' )";

$res_sql = mysql_query($sql);

// si le mail a ete envoye par mail et mysql
if ($res_mail && $res_sql) {
echo $msg_ok;
// si mysql a retourné une erreur
} else if (!$res_sql) {
echo mysql_error();
// si le mail n'a pas été envoyé
} else if (!$res_mail) {
echo 'Erreur. Le formulaire ne nous a pas été correctement envoyé par email.';
}

}
?>

merçi
A voir également:

1 réponse

dodo78 Messages postés 181 Date d'inscription samedi 3 décembre 2005 Statut Membre Dernière intervention 17 juin 2009 16
23 févr. 2008 à 13:57
je trouve l'erreur,est toute bete,c'est une valeur que je oublie d'entre dans ma ligne SQL !
1