Condition case à cocher dans formulaire

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


catseyes
Nouveau WRInaute
 
Messages: 34
Inscription: Sam Avr 07, 2007 14:06

Condition case à cocher dans formulaire

Message le Sam Mai 19, 2007 17:46

bonjour,
j'ai un formulaire avec une case à cocher a la fin pour l'inscription à la newsletter. case à cocher =mailling valeur checkbox.

ce formulaire est régi par un vérif.php sur lequel je voudrai ajouter la condition si newsletter coché, then insert into ....

Le problème, c'est que je ne connais pas la syntaxe de la condition.


finstreet
WRInaute accro
WRInaute accro
 
Messages: 10468
Inscription: Dim Juil 10, 2005 12:39

Message le Sam Mai 19, 2007 17:57

tu passes simplement la variable dans la case à cocher, et ensuite tu récupères la variable derrière... je vois pas où est le pb

ps : pour info, la case doit etre décochée d'origine


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Sam Mai 19, 2007 18:31

si la case est cochée ou if (exists($_POST['tavariable'])) ou if (!empty($_POST[])) tu insères 1 dans le champ de ta table, autrement 0 par défaut ^^

t'as plein de choix


yborean
WRInaute impliqué
WRInaute impliqué
 
Messages: 309
Inscription: Mer Sep 06, 2006 9:33

Message le Dim Mai 20, 2007 2:07

imaginons que ta checkbox soit comme suit :

<input type="checkbox" name="maCheckbox" value="1" />

dans le tag <form... de ton formulaire, rajoutes un : onsubmit="if(!this.maCheckbox.checked) {alert('vous devez cocher maCheckbox pour bénéficier de mon merveilleux service indispensable');return false;}"

ça empechera la soumission du formulaire, coté client, ça évites un aller retour serveur.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3311
Inscription: Mar Nov 16, 2004 18:27

Message le Dim Mai 20, 2007 7:16

Pour une newsletters, laisse la cocher et garde le meme test:
if decoché { insert 0 } else { insert 1 }


catseyes
Nouveau WRInaute
 
Messages: 34
Inscription: Sam Avr 07, 2007 14:06

Message le Dim Mai 20, 2007 9:32

merci de vos réponses, :)
donc si j'ai bien tout saisi, mon code devrait donner :
Code: Tout sélectionner
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
DB_SERVER_PASSWORD)
or die('Impossible de se connecter : ' . mysql_error());
// sélection de la base de données
mysql_select_db(DB_DATABASE, $connect);
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$adresse = $_POST['adresse'];
$tel = $_POST['tel'];
$mail = $_POST['mail'];
$point = strpos($email,".");
$aroba = strpos($email,"@");

if($point=='')
{
echo "votre email doit comporter un <b>'.'</b>";
}
elseif($aroba=='')
{
echo "Votre email doit comporter un <b>'@'</b>";
}
else
{
echo "Votre email est: '<a href=\"mailto:"."$email"."\"><b>$email</b></a>'";
}
$message = $_POST['message'];
print("<center><font color='FF0000'><font size='5'>Bonjour $prenom, merci de votre message.</font></font></center>");
onsubmit="if(!this.mailling.checked) {
$sql = "INSERT INTO contact VALUES ('', '".$nom."', '".$prenom."', '".$adresse."', '".$tel."', '".$mail."', '".$message."', now())";
;return false;}"
$res = mysql_query($sql);
if ($res) {
    echo $msg_ok;
  } else {
    echo mysql_error();
  }

?>


:?:

lefou
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 120
Inscription: Mar Juin 07, 2005 14:10

Message le Dim Mai 20, 2007 10:03

Je ne vois pas trop l'utilité du javascript (qui risque en plus de créer des erreurs sur ton script actuel).
Tu envoies tes variables en POST.
Tu testes la validité de tes variables en mettant les messages d'erreur dans une variable $erreur par exemple que tu définis en $erreur = "" au début.
Pour la newsletter (case à cocher), tu fais un truc du genre :
Code: Tout sélectionner
if(!isset($_POST['newsletter']) || ($_POST['newsletter'] != 1)) $erreur = "Vous devez accepter de recevoir notre newsletter";

Ensuite :
Code: Tout sélectionner
if(!$erreur != "") echo $erreur;
else mysql_query("insert into ...");


Autre point :
Tu peux vérifier l'adresse email à partir d'une expression régulière :
Code: Tout sélectionner
if(!ereg("^[0-9a-zA-Z]{1}[0-9a-zA-Z_\.\-]+@[0-9a-zA-Z]{1}[0-9a-zA-Z_\.\-]+\.[a-zA-Z]{2,4}$",$_POST['email'])) $erreur = "Le format de l'adresse email est invalide"


catseyes
Nouveau WRInaute
 
Messages: 34
Inscription: Sam Avr 07, 2007 14:06

Message le Dim Mai 20, 2007 10:59

ok, je comprends mieux.

j'ai donc modifié le code pour
Code: Tout sélectionner
mysql_select_db(DB_DATABASE, $connect);
$destinataire="contact@allhambra-communication.com";
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$adresse = $_POST['adresse'];
$tel = $_POST['tel'];
if(!ereg(^[0-9a-zA-Z]{1}[0-9a-zA-Z_\.\-]+@[0-9a-zA-Z]{1}[0-9a-zA-Z_\.\-]+\.[a-zA-Z]{2,4}$,$_POST['mail'])) $erreur = "Le format de l'adresse email est invalide"
if(!$erreur != "") $mail = $_POST['mail'];
echo"Votre email est: '<a href=\"mailto:"."$email"."\"><b>$email</b></a>'";
$message = $_POST['message'];
if(!isset($_POST['mailling']) ; ($_POST['mailling'] != 1) $erreur = "Vous devez accepter de recevoir notre newsletter";
if(!$erreur != "") echo $erreur print("<center><font color='FF0000'><font size='5'>Bonjour $prenom, merci de votre message.</font></font></center>");
else mysql_query("INSERT INTO contact VALUES ('', '".$nom."', '".$prenom."', '".$adresse."', '".$tel."', '".$mail."', '".$message."', now());
"
$res = mysql_query($sql);
if ($res) {
    echo $msg_ok;
  } else {
    echo mysql_error();
  }

?>


et du coup j'ai un message d'erreur stupide
Parse error: syntax error, unexpected '^', expecting ')' in /mnt/139/sdc/8/3/allhambra/Peter span design/verif.php on line 24

la ligne 24 étant tout simplement
Code: Tout sélectionner
$tel = $_POST['tel'];


je suis plus que perplexe :roll:

lefou
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 120
Inscription: Mar Juin 07, 2005 14:10

Message le Dim Mai 20, 2007 16:04

En fait il te manque les guillemets dans ton expression régulière de test de l'adresse email :
if(!ereg("^[0-9a-zA-Z]{1}[0-9a-zA-Z_\.\-]+@[0-9a-zA-Z]{1}[0-9a-zA-Z_\.\-]+\.[a-zA-Z]{2,4}$",$_POST['mail'])) $erreur = "Le format de l'adresse email est invalide"


finstreet
WRInaute accro
WRInaute accro
 
Messages: 10468
Inscription: Dim Juil 10, 2005 12:39

Message le Dim Mai 20, 2007 16:15

KOogar a écrit:Pour une newsletters, laisse la cocher


C juste illégal


catseyes
Nouveau WRInaute
 
Messages: 34
Inscription: Sam Avr 07, 2007 14:06

Message le Dim Mai 20, 2007 17:27

ben l'optique, ce n'est pas de les obliger a accepter le mailing, mais juste de pourvoir incrémenter dans ma BDD ceux qui souhaitent la recevoir.
donc par défaut la case est décochée.

pour les guillemets, je remets ça de suite en espérant ne pas avoir d'erreur.

Merci à tous de votre participation


catseyes
Nouveau WRInaute
 
Messages: 34
Inscription: Sam Avr 07, 2007 14:06

Message le Dim Mai 20, 2007 17:54

bon aprés retouche, le code donne
Code: Tout sélectionner
mysql_select_db(DB_DATABASE, $connect);
$destinataire="moi@monfai.com";
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$adresse = $_POST['adresse'];
$tel = $_POST['tel'];
$message = $_POST['message'];
if(!ereg("^[0-9a-zA-Z]{1}[0-9a-zA-Z_\.\-]+@[0-9a-zA-Z]{1}[0-9a-zA-Z_\.\-]+\.[a-zA-Z]{2,4}$",
$_POST['mail'])) $erreur = "Le format de l'adresse email est invalide"
if(!isset($_POST['mailling']) ; ($_POST['mailling'] != 1) $erreur = "Si vous devez ne cochez pas la case, vous ne recevrez pas notre newsletter";
if(!$erreur != "") echo $erreur print("<center><font color='FF0000'><font size='5'>Bonjour $prenom, merci de votre message.</font></font></center>");
else mysql_query("INSERT INTO contact VALUES ('', '".$nom."', '".$prenom."', '".$adresse."', '".$tel."', '".$mail."', '".$message."', now());
"$res = mysql_query($sql); if ($res) {echo $msg_ok;} else {echo mysql_error();}
?>


avec un beau Parse error: syntax error, unexpected T_IF in /mnt/139/sdc/8/3/allhambra/Peter span design/verif.php on line 27 !

La ligne 27 étant :
if(!isset($_POST['mailling']) ; ($_POST['mailling'] != 1) $erreur = "Si vous devez ne cochez pas la case, vous ne recevrez pas notre newsletter";


finstreet
WRInaute accro
WRInaute accro
 
Messages: 10468
Inscription: Dim Juil 10, 2005 12:39

Message le Dim Mai 20, 2007 18:51

Code: Tout sélectionner
if(!isset($_POST['mailling']) ; ($_POST['mailling'] != 1) $erreur = "Si vous devez ne cochez pas la case, vous ne recevrez pas notre newsletter";


C'est pas ca plutot

Code: Tout sélectionner
if(!isset($_POST['mailling']) ; ($_POST['mailling'] != 1) ; $erreur = "Si vous devez ne cochez pas la case, vous ne recevrez pas notre newsletter";

lefou
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 120
Inscription: Mar Juin 07, 2005 14:10

Message le Lun Mai 21, 2007 8:25

finstreet a écrit:
Code: Tout sélectionner
if(!isset($_POST['mailling']) ; ($_POST['mailling'] != 1) $erreur = "Si vous devez ne cochez pas la case, vous ne recevrez pas notre newsletter";


C'est pas ca plutot

Code: Tout sélectionner
if(!isset($_POST['mailling']) ; ($_POST['mailling'] != 1) ; $erreur = "Si vous devez ne cochez pas la case, vous ne recevrez pas notre newsletter";


Je dirais plutôt problème de caractère de condition et parenthèse :
if(!isset($_POST['mailling']) || ($_POST['mailling'] != 1)) $erreur = "Si vous ne cochez pas la case, vous ne recevrez pas notre newsletter";


catseyes
Nouveau WRInaute
 
Messages: 34
Inscription: Sam Avr 07, 2007 14:06

Message le Lun Mai 21, 2007 9:01

if(!isset($_POST['mailling']) || ($_POST['mailling'] != 1)) $erreur = "Si vous ne cochez pas la case, vous ne recevrez pas notre newsletter";


même rédigé commeça, j'ai toujours ce satané message :?
Parse error: syntax error, unexpected T_IF in /mnt/139/sdc/8/3/allhambra/verif.php on line 27

Condition case à cocher dans formulaire

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités