Bonjour
Tout d'abord merci pour le tutoriel formulaire php. Il est très clair et très bien fait.
Dans l'ensemble les scripts fonctionnent, mais lorsque j'essaye d'envoyer le formulaire, j'obtiens le message suivant : "Column count doesn't match value count at row 1"
----- Voici le code du formulaire, inscrit dans un fichier intitulé "commande.php", situé dans un dossier "_php".
<div id="form">
<form method="post" action="cible.php">
<fieldset id="coordonnées">
<h3>Coordonnées</h3>
<table border=0px width=400px>
<tr><td width=55px><b>Nom</b> *</td><td><input type="text" name="nom" value="…" size="25"/></td>
<td width=55px><b>Prénom</b> *</td><td colspan=3><input type="text" name="prenom" value="…" size="25"/></td></tr>
<tr height=5px><td colspan=4> </td></tr>
<tr><td>Adresse *</td><td colspan=3><input type="text" name="adresse" value="…" size="65"/></td></tr>
<tr><td>Ville *</td><td><input type="text" name="ville" value="…" size="25" /></td>
<td>CP *</td><td><input type="text" name="codepostal" value="…" size="5"/></td></tr>
<tr height=5px><td colspan=4> </td></tr>
<tr><td>Mail *</td><td><input type="text" name="mail" value="…" size="25" /></td>
<td>Web</td><td><input type="text" name="web" value="…" size="25" /></td></tr>
<tr><td>Tél</td><td colspan=3><input type="text" name="tel" value="…" size="25" /></td></tr>
</table>
</fieldset>
<fieldset id="commande">
<h3>Commande</h3></fieldset>
<fieldset id="informations">
<h3>Informations</h3>
<table border=0px width=400px>
<tr><td valign=top width=60px>Remarques</td><td width=340px><textarea cols="61" rows="5" wrap="virtual" name="texte"/>…</textarea></td></tr>
</table>
<table border=0px width=400px>
<tr><td width=360px>Souhaitez -vous recevoir des infos de La mais°n ?</td>
<td align=center width=30px>
<input name="info" value="Lettre d'information" class="OPTION" type="checkbox" />
</td></tr>
</table>
</fieldset>
<fieldset id="modalités de ventes">
<h3>Modalités de paiement</h3>
<p>Les prix mentionnés au catalogue s'entendent en euros et TTC.</p>
<p>Les produits commandés seront mis de côté pour une durée de 15 jours à dater de l'envoi du bon de commande.</p>
<p>Les colis ne seront envoyés qu'à réception du règlement.</p>
<p>Merci d'adresser vos chèques, en euros uniquement, à l'ordre de "La maison" à l'adresse suivante : La mais°n, 83, rue Jean Catelas, 80480 Saleux - France</p>
<p>En cochant cette case, j'atteste avoir pris connaissance des modalités de vente et en accepter les différentes conditions</p>
<div align="center">
<input name="accord" value="JE SUIS D'ACCORD" class="OPTION" type="checkbox" />
</div>
</fieldset>
<br><div align=center>
<input type="submit" value="Envoyer" />
<input type="reset" value="Annuler" />
</div>
</form>
</div>
---------- voici le code du fichier de traitement, que j'ai appellé "cible.php" et qui se trouve à la racine du site.
<? include ("_php/connect.php"); ?>
<?php
mysql_select_db('formulaire',$db);
$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;
// vérification des champs
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty($_POST['prenom']))
$message .= "Votre prénom<br/>";
if (empty($_POST['adresse']))
$message .= "Votre adresse<br/>";
if (empty($_POST['codepostal']))
$message .= "Votre code postal<br/>";
if (empty($_POST['ville']))
$message .= "Votre ville<br/>";
if (empty($_POST['mail']))
$message .= "Votre mail<br/>";
if (empty($_POST['accord']))
$message .= "Vous n'avez pas validé les modalités de paiement<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 {
foreach($_POST as $index => $valeur) {
$$index = mysql_real_escape_string(trim($valeur));
}
$sql = "INSERT INTO formulaire VALUES ('','".$nom."', '".$prenom."','".$adresse."', '".$codepostal."', '".$ville."','".$mail."','".$web."', '".$tel."','".$texte."','".$info."','".$accord."','', now())";
$res = mysql_query($sql);
if ($res) {
echo $msg_ok;
} else {
echo mysql_error();
}
}
?>
----------------------------- Sauriez-vous me dire d'où peut venir l'erreur ?
Pour info, je fonctionne sur Mac et pour l'instant je n'ai testé qu'en local.
Merci d'avance.