*
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
24 Mai 2012 à 06:30:42

Connexion avec identifiant, mot de passe et durée de la session



 

Problème avec le formulaire Php


« sujet précédent | | sujet suivant »
Pages: [1] Imprimer
Auteur Fil de discussion: Problème avec le formulaire Php  (Lu 1445 fois)
vadim
Nouveau membre
*

Points gagnés: 0
Messages: 1


Voir le profil
Problème avec le formulaire Php
« le: 06 Mai 2007 à 07:24:10 »

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".
Code:
<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="&#133;" size="25"/></td>
<td width=55px><b>Prénom</b> *</td><td colspan=3><input type="text" name="prenom" value="&#133;" size="25"/></td></tr>
<tr height=5px><td colspan=4>&nbsp;</td></tr>


<tr><td>Adresse *</td><td colspan=3><input type="text" name="adresse" value="&#133;" size="65"/></td></tr>
<tr><td>Ville *</td><td><input type="text" name="ville" value="&#133;" size="25" /></td>
<td>CP *</td><td><input type="text" name="codepostal" value="&#133;" size="5"/></td></tr>
<tr height=5px><td colspan=4>&nbsp;</td></tr>


<tr><td>Mail *</td><td><input type="text" name="mail" value="&#133;" size="25" /></td>
<td>Web</td><td><input type="text" name="web" value="&#133;" size="25" /></td></tr>
<tr><td>Tél</td><td colspan=3><input type="text" name="tel" value="&#133;" 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"/>&#133;</textarea></td></tr>
</table>
<table border=0px width=400px>
<tr><td width=360px>Souhaitez -vous recevoir des infos de La mais&deg;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.
Code:
<? 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.
Journalisée
Damien
Rédacteur Admin
Intarissable
*****

Points gagnés: 5
Messages: 2852



Voir le profil WWW
Re : Problème avec le formulaire Php
« Répondre #1 le: 09 Mai 2007 à 21:10:41 »

Bonsoir,

Le script indique quelle ligne en cause dans l'erreur ?
En principe cette erreur vient de votre requête sql "Insert", dont le nombre de champ insérés ne correspond pas au nombre de champs réel de votre base de données mysql.
Journalisée

Cordialement,
Damien

Tutoriels informatique
Pages: [1] Imprimer 
« sujet précédent | | sujet suivant »
Aller à:  

Powered by SMF 1.1.12 | SMF © 2006, Simple Machines LLC

Page générée en 0.138 secondes avec 18 requêtes.