validation check box

Invité
Invité n'ayant pas de compte PHPfrance

12 janv. 2006, 11:31

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

Mammouth du PHP | 19672 Messages

12 janv. 2006, 11:41

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

12 janv. 2006, 11:46

ah merci je vais tester
j'étais partie sur un truc comme ça et fatalement ça marchait pas !

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

Invité
Invité n'ayant pas de compte PHPfrance

12 janv. 2006, 11:49

merci beaucoup pour l'info !

Mammouth du PHP | 19672 Messages

12 janv. 2006, 11:49

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é"
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

12 janv. 2006, 12:40

merci ! :o