Prendre en compte une checkbox coché ou non dans ma BDD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Prendre en compte une checkbox coché ou non dans ma BDD

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par jojo1000 » 03 févr. 2010, 11:10

tu pourrais peut-être nous montrer ton formulaire?

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par stealth35 » 03 févr. 2010, 11:03

faut met les valeurs a "1" dans ton HTML au lieu de "oui" dans ta condition tu mets
if($recuplogo  != '1')
{
    $recuplogo = '0';
}

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par Thors » 03 févr. 2010, 02:07

si j'ai bien compris ces modifications que j'ai faites correspondent à ce que tu viens de me dire ou pas du tout?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>Formulaire de commande</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" href="style.css" type="text/css" media="screen">
 </head>

 <body>

 <?php 
$civilite=$_POST['civilite'];
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$tel=$_POST['telephone'];
$mail=$_POST['email'];
$nbpages=$_POST['nbpages'];
$phsup=$_POST['photosupp'];
$vidsup=$_POST['videosupp'];
$text=$_POST['commentaire'];
$recuplogo=$_POST['recup_logo'];
if($recuplogo != 'oui')
{
    $recuplogo = 'non';
}
$crealogo=$_POST['crea_logo'];
if($crealogo != 'oui')
{
    $crealogo = 'non';
}
$newsletter= $_POST['newsletter'];

if($newsletter != 'oui')
{
    $newsletter = 'non';
}
 $maconnexion=mysql_connect("localhost","root","") or die ("erreur de connexion de serveur");
 if ( ! $maconnexion ) die ("Connexion impossible");
 mysql_select_db("exo2btsig",$maconnexion) or die ("erreur de connexion à la base exo2btsig"); 

 mysql_query("INSERT INTO clients(ClientCivilite,ClientNom,ClientPrenom,ClientTelephone,ClientEmail,ClientPages,ClientPhotosSupp,ClientVideoSupp,ClientRecupLogo,ClientCreationLogo,ClientNewsletter,ClientCommentaire) VALUES ('$civilite', '$nom', '$prenom', '$tel', '$mail', '$nbpages', '$phsup', '$vidsup', '$recuplogo', '$crealogo', '$newsletter', '$text')") or die ("Requête incorrecte");
 
 echo "".$_POST['civilite']." ".$_POST['nom'].", votre commande a bien été prise en compte !";
 
 mysql_close($maconnexion); 
 ?>

 </body>
</html>


Malgrès ces modifications le probléme reste entier lorsque je ne clique pas sur la case il me renvoie une erreur et lorsque je coche la case il me renvoie la valeur 0 dans la base de donnée

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par stealth35 » 03 févr. 2010, 01:48

si ton champs "prénom" n'est pas remplis $_POST['prenom'] n'exsite pas et tu auras une erreur PHP

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par Thors » 03 févr. 2010, 01:44

désolé je n'ai pas compris ta réponse, visiblement c'est pas ma semaine ca fait deux jours que je m'arrache les cheveux avec ce probleme ...

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par stealth35 » 03 févr. 2010, 01:40

la réponse c'est ce que je viens de dire? lol je vais essayer merci par contre cela ne va t'il pas poser de probléme si je n'est pas citer mes champs de ma table les uns apres les autres au debut de la requete?
tu fais la partie la plus chiante "la gestion de forumlaire", faut tester tout les valeurs avant, si elle n'existe pas dans ta requete POST php va pas comprendre non plus.

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par Thors » 03 févr. 2010, 01:33

la réponse c'est ce que je viens de dire? lol je vais essayer merci par contre cela ne va t'il pas poser de probléme si je n'est pas citer mes champs de ma table les uns apres les autres au debut de la requete?



Ps je viens de tester en remplacant seulement ce que j'avais dit et cela ne suffit pas apperement si je ne coche pas la case il m'affiche le message la:
Notice: Undefined index: newsletter in C:\wamp\www\Exo2BTS\transfert.php on line 12
Mlle / Mme delassus, votre commande a bien été prise en compte !
Et si je la coche il reste quand même à 0 dans la base de donées ^^

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par stealth35 » 03 févr. 2010, 01:32

voila :wink:

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par Thors » 03 févr. 2010, 01:29

dans ma requete ne dois-je pas remplacer le '".$_POST['newsletter'] par '$newsletter' ?

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par Thors » 03 févr. 2010, 01:27

oui j'ai changer l'encodage pour ca c'est modifier merci et pour les valeurs pareil mais aprés essai rien ne change pour mieux t'en rendre compte peux être ai-je commis une erreur de compréhenssion je vais copier mes fichier modifier.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>Formulaire de commande</title>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  <link rel="stylesheet" href="style.css" type="text/css" media="screen">
 </head>

 <body>

  <h1>Formulaire de commande</h1>

  <form method="POST" action="transfert.php">

   <table>
    <tr>
     <td>Civilité</td>
     <td><label><input type="radio" name="civilite" value="Mr." />Mr.</label><label><input type="radio" name="civilite" value="Mlle / Mme" />Mlle / Mme</label></td>
    </tr>
    <tr>
     <td>Nom</td>
     <td><input name="nom" type="text"/></td>
    </tr>
    <tr>    
     <td>Prénom</td>
     <td><input name="prenom" type="text" /></td>
    </tr>
    <tr>
     <td>N° téléphone</td>
     <td><input name="telephone" type="text" /></td>
    </tr>
    <tr>
     <td>Email</td>
     <td><input name="email" type="text" /></td>
    </tr>
    <tr>
     <td colspan="2" height="40" valign="bottom"><b>Premiére page 297&euro;*/ Page suivante 97&euro;*</b></td>
    </tr>
    <tr>
     <td>Nombres de pages</td>
     <td><input name="nbpages" type="text" size="3"/></td>
    </tr>
    <tr>
     <td>Photos supplémentaires (270&euro;*)</td>
     <td><input name="photosupp" type="text" size="3"/></td>
    </tr>
    <tr>
     <td>Vidéo supplémentaire (147&euro;*)</td>
     <td><input name="videosupp" type="text" size="3"/></td>
    </tr>
    <tr>
     <td colspan="2">
      <label><input name="recup_logo" type="checkbox" value="0" />
      oui 
        <input name="recup_logo2" type="checkbox" value="0" />
        non 
      Récupération logo (27&euro;*)</label>
       <br />
      <label><input name="crea_logo" type="checkbox" value="0i" /> 
      Création  logo (157&euro;*)</label>
      <br />
      <label><input name="newsletter" type="checkbox" value="0" /> 
      Newsletter (167&euro;*)</label>
     </td>
    </tr> 
    <tr>
     <td colspan="2" height="40" valign="bottom"><b>Commentaires</b></td>     
    </tr> 
    <tr>
     <td colspan="2"><textarea name="commentaire" rows="10"></textarea></td>
    </tr>
    <tr>
     <td colspan="2"><input type="submit" value="Envoyer"></td>
    </tr>
   </table>
   
   <br />
   
   <i>* Tous les prix afficher ci-dessus sont Hors-Taxe</i>
  </form>
 </body>
</html>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>Formulaire de commande</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" href="style.css" type="text/css" media="screen">
 </head>

 <body>

 <?php 
$newsletter= $_POST['newsletter'];

if($newsletter != 'oui')
{
    $newsletter = 'non';
}
 $maconnexion=mysql_connect("localhost","root","") or die ("erreur de connexion de serveur");
 if ( ! $maconnexion ) die ("Connexion impossible");
 mysql_select_db("exo2btsig",$maconnexion) or die ("erreur de connexion à la base exo2btsig"); 

 mysql_query("INSERT INTO `clients` VALUES (NULL , '".$_POST['civilite']."', '".$_POST['nom']."', '".$_POST['prenom']."', '".$_POST['telephone']."', '".$_POST['email']."', '".$_POST['nbpages']."', '".$_POST['photosupp']."', '".$_POST['videosupp']."', '".$_POST['recup_logo']."', '".$_POST['crea_logo']."', '".$_POST['newsletter']."', '".$_POST['commentaire']."')") or die ("Requête incorrecte");
 
 echo "".$_POST['civilite']." ".$_POST['nom'].", votre commande a bien été prise en compte !";
 
 mysql_close($maconnexion); 
 ?>

 </body>
</html>

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par stealth35 » 03 févr. 2010, 01:18

je viens de tester en mettant le code donné au dessus de la connection à la base de données sans rien toucher au HTML,
Après essai cela ne change rien dans ma base de données cela me met toujours 0comme valeur.
Mais je me suis rendu compte que dans ma base de données mon champ 'clientnewzletter" je l'ai mis en type "int" et de taille "1" c'est peux être mon probléme non?

Ps: pourrais tu me réexpliquer ce que tu me disais à propos de la partie html?
ouai, mais c'est pas grave, dans ton HTML au lieu de oui ou non en value, tu met 0 ou 1,

et pour le html tu encodes les carateres ca sert pas a grand chose, ex: (prénom = p&ecutenom), si tes fichiers sont bien encode tu peu ecrire ca normalement

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par Thors » 03 févr. 2010, 01:13

je viens de tester en mettant le code donné au dessus de la connection à la base de données sans rien toucher au HTML,
Après essai cela ne change rien dans ma base de données cela me met toujours 0comme valeur.
Mais je me suis rendu compte que dans ma base de données mon champ 'clientnewzletter" je l'ai mis en type "int" et de taille "1" c'est peux être mon probléme non?

Ps: pourrais tu me réexpliquer ce que tu me disais à propos de la partie html?

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par Thors » 03 févr. 2010, 01:03

ok merci beaucoup je teste ca et je reviens te donner le résultat merci!

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par stealth35 » 03 févr. 2010, 01:02

tu c'est preferable de creer des variables comme
$newsletter= $_POST['newsletter'];

if($newsletter != 'oui')
{
    $newsletter = 'non';
}

et sinon coté HTML, les &eacute et comagnie ca sert a rien, le content type va au dessus du title, et sinon c'est pas top d'utilisé les tableau pour la mise en page, mais c'est grave le reste c'est propre

Re: Prendre en compte une checkbox coché ou non dans ma BDD

par Thors » 03 févr. 2010, 00:54

peux tu me donner plus de détail? car la je nage complétement dans le flou a vrai dire ... Je n'ai aucune connaissance en javascript.. je préfére donc rester en php, si tu pouvais m'expliquer avec plus de détail ca serait sympas stp merci