input checkbox BOOLEAN

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 : input checkbox BOOLEAN

Re: input checkbox BOOLEAN

par xander18 » 23 févr. 2013, 18:27

Aurais tu une solution a mon problème d'insert avec le $promo ?
<?php
require("session.class.php");
  
$Session = new Session();
   
        //nom :
        $nom = $_POST['nom'] ;
        //prix
        $prix = $_POST['prix'] ;
		//image
		$image = $_POST['image'];
        //description
        $description = $_POST['description'] ;
        //quantiter
        $quantiter = $_POST['quantiter'] ;
        //id_consoles
        $id_consoles = $_POST['id_consoles'] ;
        //id_types
        $id_types = $_POST['id_types'] ;
        //id_genres
        $id_genres = $_POST['id_genres'] ;
		//promo
		if(empty($_POST['promo'])){
		$promo = 0;
		}else{
		$promo = 1;
		}

//connection au serveur
include ('includes/connexion_bdd.php');
// vérification du produit,  existe ou existe pas ??
$connect = mysql_connect ('localhost', 'root', '') or die ("Connexion à la base SQL impossible");
$select = mysql_select_db ('oldschoolgen', $connect);
   
  // On vérifie si le produit est déjà ds la bdd
$sql = 'SELECT count(*) FROM produits WHERE nom="'.mysql_real_escape_string($_POST['nom']).'"AND id_consoles="'.mysql_real_escape_string($_POST['id_consoles']).'"';
$res = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($res);
 
// on verifie que le produit n'est pas déjà utilisé
mysql_free_result($res);
       
 
      if ($data[0] == 1) {
        $Session->setFlash('Le produit existe déjà dans la base de données','error');
      }
   
      // sinon on continue l'insertion du produit
      else
      {
// insertion des données récupérer
// régularisation de la syntaxe 
 
            $req = $bdd->prepare('INSERT INTO oldschoolgen.produits(nom, prix, image, description, quantiter, id_consoles, id_types, id_genres, promo) VALUES(:nom, :prix, :image, :description, :quantiter, :id_consoles, :id_types, :id_genres, :$promo');
 
            $req->execute(array(
                  'nom' => $nom,
                  'prix' => $prix,
                  'image' => $image,
                  'description' => $description,
                  'quantiter' => $quantiter,
				  'id_consoles' => $id_consoles,
                  'id_types' => $id_types,
                  'id_genres' => $id_genres,
				  'promo' => $promo
            ));
			$req->closeCursor();
            // message d'alerte
            $Session->setFlash('L\'ajout du produit a bien été effectuer','success');
}
// retour a la page d'acceuil
header('Location:ajout_produits.php');
?>

Re: input checkbox BOOLEAN

par xander18 » 23 févr. 2013, 17:25

fck me XD
voici le code
		//promo
		if(!empty($_POST['promo'])){
		$promo = 0;
		}else{
		$promo = 1;
		}

//connection au serveur
include ('includes/connexion_bdd.php');
// vérification du produit,  existe ou existe pas ??
$connect = mysql_connect ('localhost', 'root', '') or die ("Connexion à la base SQL impossible");
$select = mysql_select_db ('oldschoolgen', $connect);
   
  // On vérifie si le produit est déjà ds la bdd
$sql = 'SELECT count(*) FROM produits WHERE nom="'.mysql_real_escape_string($_POST['nom']).'"AND id_consoles="'.mysql_real_escape_string($_POST['id_consoles']).'"';
$res = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($res);
 
// on verifie que le produit n'est pas déjà utilisé
mysql_free_result($res);
       
 
      if ($data[0] == 1) {
        $Session->setFlash('Le produit existe déjà dans la base de données','error');
      }
   
      // sinon on continue l'insertion du produit
      else
      {
// insertion des données récupérer
// régularisation de la syntaxe 
 
            $req = $bdd->prepare('INSERT INTO oldschoolgen.produits(nom, prix, image, description, quantiter, id_consoles, id_types, id_genres, promo) VALUES(:nom, :prix, :image, :description, :quantiter, :id_consoles, :id_types, :id_genres, :$promo)');
 
            $req->execute(array(
                  'nom' => $nom,
                  'prix' => $prix,
                  'image' => $image,
                  'description' => $description,
                  'quantiter' => $quantiter,
				  'id_consoles' => $id_consoles,
                  'id_types' => $id_types,
                  'id_genres' => $id_genres,
				  'promo' => $promo
            ));
			$req->closeCursor();
            // message d'alerte
            $Session->setFlash('L\'ajout du produit a bien été effectuer','success');
}
// retour a la page d'acceuil
header('Location:ajout_produits.php');
?>
le input est toujour le meme avec value="promo"
Or la sa ne me fait pas l'insertion en BDD

Re: input checkbox BOOLEAN

par moogli » 23 févr. 2013, 17:12

$_POST['promo'] n'existe pas si la check n'est pas cochée.

il ne faut jamais présumé qu'une valeur issue d'un formulaire existe et c'est ce que tu fait avec cette ligne
$promo = $_POST['promo'];

tu y est presque vire la dernière ligne et utilise 0 ou 1 mysql ne connais pas true / false
<?php
if(!empty($_POST['promo'])) {
    $promo = 1;
}
else {
    $promo = 0;
}
?>
et tu utilise $promo dans la requête.

@+

Re: input checkbox BOOLEAN

par xander18 » 23 févr. 2013, 17:06

Je fait un test pour le checkbox :
		//promo
		if(!empty($_POST['promo'])){
		$_POST['promo'] = false;
		}else{
		$_POST['promo']= true;
		}
		$promo = $_POST['promo'];

Re: input checkbox BOOLEAN

par xander18 » 23 févr. 2013, 17:01

Justement j'ai du mal a comprendre, dans ma bdd j'ai un champ promo qui a pour valeur un bollean qui équivaut a 0 ou 1

dans mon form j'ai donc inséré un input :
<input type="checkbox" name="promo" value="promo"> En promo ?
et dans mon php je veut insert la valeur du checkbox si elle est checked j'envoi 1 si non j'envoi 0 et comment le faire je cogite et je trouve pas comment faire
voici mon php
		//promo
		$promo = $_POST['promo'];
            $req = $bdd->prepare('INSERT INTO oldschoolgen.produits(nom, prix, image, description, quantiter, id_consoles, id_types, id_genres, promo) VALUES(:nom, :prix, :image, :description, :quantiter, :id_consoles, :id_types, :id_genres, :promo)');
 
            $req->execute(array(
                  'nom' => $nom,
                  'prix' => $prix,
                  'image' => $image,
                  'description' => $description,
                  'quantiter' => $quantiter,
				  'id_consoles' => $id_consoles,
                  'id_types' => $id_types,
                  'id_genres' => $id_genres,
		 'promo' => $promo
            ));

Re: input checkbox BOOLEAN

par moogli » 23 févr. 2013, 16:48

salut


qu'entend tu par booleen via checkbox ?

tu indique la valeur que tu veux dans le value, après si elle n'existe pas dans $_POST tu considère false sinon true.



@+

input checkbox BOOLEAN

par xander18 » 23 févr. 2013, 16:44

Bonjour, vu que je ne trouve pas la solution sur le net je viens vous voir,
je voudrais savoir comment récupéré un BOOLEAN via un checkbox ?
cordialement,
xander18