Page 1 sur 1

validation check box

Posté : 12 janv. 2006, 11:31
par Invité
bonjour,
dans mon formulaire j'ai des checkbox (inscriptionword, inscriptionexcel)
dans ma bdd si je déclare en binary lorsque je coche il me met un C et si je coche pas il ne me met rien (là c ok) par contre il me marque Notice: Undefined index: inscriptionword in f:\program files\easyphp1-8\www\exercicescaro\valide2.php on line 7
sur ma page php

faut il déclarer ces variables autrement ?

voici mon code php
<?php 
$nom = $_POST['nom']; 
$prenom    = $_POST['prenom']; 
$adresse    = $_POST['adresse'];
$codepostal    = $_POST['codepostal'];
$ville    = $_POST['ville'];
$inscriptionword    = $_POST['inscriptionword'];
$inscriptionexcel    = $_POST['inscriptionexcel'];

$db = mysql_connect('localhost', 'caro', 'oceiris'); 
mysql_select_db('icaf',$db); 

$sql = "INSERT INTO pub VALUES('". $nom ."', '". $prenom ."','".$adresse."','".$codepostal."','".$ville."','".$inscriptionword."','".$inscriptionexcel."')"; 
mysql_query($sql) or die('Erreur SQL !'.$sql.' '.mysql_error()); 

echo 'merci beaucoup, vos infos ont été enregistrées.'; 
mysql_close(); 
?>


merci

Posté : 12 janv. 2006, 11:41
par Cyrano
C'est normal, une case non cochée n'envoie rien, donc l'index n'existera pas dans la super-globale.
Correction pour la récupération :
$inscriptionword  = isset($_POST['inscriptionword'])  ? $_POST['inscriptionword']  : "";
$inscriptionexcel = isset($_POST['inscriptionexcel']) ? $_POST['inscriptionexcel'] : "";
Si l'index existe, on affecte la valeur à la variable, sinon, on affecte une chaine vide : de cette manière, tu n'auras pas d'erreur sur l'index et pas d'erreur non plus sur une variable indéfinie.

Posté : 12 janv. 2006, 11:46
par Invité
ah merci je vais tester
j'étais partie sur un truc comme ça et fatalement ça marchait pas !

if($inscriptionword == NULL) {$inscriptionword=="pas coche")}

Posté : 12 janv. 2006, 11:49
par Invité
merci beaucoup pour l'info !

Posté : 12 janv. 2006, 11:49
par Cyrano
Ben tu aurais pu faire autrement :
$inscriptionword  = isset($_POST['inscriptionword'])  ? "coché" : "pas coché";
$inscriptionexcel = isset($_POST['inscriptionexcel']) ? "coché" : "pas coché";
Comme ça, s'il n'y a pas d'index correspondant, ta variable prend la valeur "pas coché"

Posté : 12 janv. 2006, 12:40
par Invité
merci ! :o