Vérifier si la checkbox du cgu est coché ou pas
- Accueil
- Forum
- Programmation
- PHP
- Vérifier si la checkbox du cgu est coché ou pas
manandroid Le 12 février 2017 à 17:18 (Édité le 25 janvier 2019 à 17:53)
Exemple : J'ai mon formulaire en ligne , un visiteur veut s’inscrire pseudo mdp etc et avant le bouton s'inscrire j'ai la checkbox du cgu mais il oublie de la coché comment l'indiquer qu'il à pas coché ? svp
Mon code :
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
if(isset($_POST['forminscription'])) {
$pseudo = htmlspecialchars($_POST['pseudo']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']);
$mdp = sha1($_POST['mdp']);
$mdp2 = sha1($_POST['mdp2']);
$ip = $_SERVER['REMOTE_ADDR'];
$nav = $_SERVER['HTTP_USER_AGENT'];
if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])) {
$pseudolength = strlen($pseudo);
if($pseudolength <= 255) {
if($mail == $mail2) {
if(filter_var($mail, FILTER_VALIDATE_EMAIL)) {
$reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?");
$reqmail->execute(array($mail));
$mailexist = $reqmail->rowCount();
if($mailexist == 0) {
if($mdp == $mdp2) {
$insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse, ip, nav) VALUES(?, ?, ?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp, $ip, $nav));
$erreur = "Votre compte a bien été créé !";
} else {
$erreur = "Vos mots de passes ne correspondent pas !";
}
} else {
$erreur = "Adresse mail déjà utilisée !";
}
} else {
$erreur = "Votre adresse mail n'est pas valide !";
}
} else {
$erreur = "Vos adresses mail ne correspondent pas !";
}
} else {
$erreur = "Votre pseudo ne doit pas dépasser 255 caractères !";
}
} else {
$erreur = "Tous les champs doivent être complétés !";
}
}
?>
<html>
<head>
<title>Inscription</title>
<meta charset="utf-8">
</head>
<body>
<div align="center">
<h2>Inscription</h2>
<br /><br />
<form method="POST" action="">
<table>
<tr>
<td align="right">
<label for="pseudo">Pseudo :</label>
</td>
<td>
<input type="text" placeholder="Votre pseudo" id="pseudo" name="pseudo" value="<?php if(isset($pseudo)) { echo $pseudo; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="mail">Mail :</label>
</td>
<td>
<input type="email" placeholder="Votre mail" id="mail" name="mail" value="<?php if(isset($mail)) { echo $mail; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="mail2">Confirmation du mail :</label>
</td>
<td>
<input type="email" placeholder="Confirmez votre mail" id="mail2" name="mail2" value="<?php if(isset($mail2)) { echo $mail2; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="mdp">Mot de passe :</label>
</td>
<td>
<input type="password" placeholder="Votre mot de passe" id="mdp" name="mdp" />
</td>
</tr>
<tr>
<td align="right">
<label for="mdp2">Confirmation du mot de passe :</label>
</td>
<td>
<input type="password" placeholder="Confirmez votre mdp" id="mdp2" name="mdp2" />
</td>
</tr>
<tr>
<td></td>
<td align="right">
<br />
<input type="checkbox" name="cgu_accept_ins" id="cgu"/><label for="cgu">J'accepte les <a href="#">Conditions Générales d'Utilisation</a></label>
</td>
</tr>
<tr>
<td></td>
<td align="center">
<br />
<input type="submit" name="forminscription" value="Je m'inscris" />
</td>
</tr>
</table>
</form>
<?php
if(isset($erreur)) {
echo '<font color="red">'.$erreur."</font>";
}
?>
</div>
</body>
</html>
Johan-Krn Le 13 février 2017 à 00:01 (Édité le 1 janvier 1970 à 01:00)
// tu met ce bout de code
if(empty($_POST['cgu']){
$erreur = "Vous n'êtes pas d'accord avec les conditions de service";
}
// ici comme ça
if($mdp == $mdp2) {
if(!empty($_POST['cgu']){
$insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse, ip, nav) VALUES(?, ?, ?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp, $ip, $nav));
$erreur = "Votre compte a bien été créé !";
}else{
$erreur = "Vous n'êtes pas d'accord avec les conditions de service";
}
} else {
$erreur = "Vos mots de passes ne correspondent pas !";
}
// ou tu vérifie si "cgu" n'est pas vide comme le "pseudo" etc
// je préfère la première solution car l'utilisateur reçoit le message d'erreur "Vous n'êtes pas d'accord avec les conditions de service" alors qu'avec la 2eme solution l'utilisateur reçoit le message d'erreur "Tous les champs doivent être complétés !"
if(!empty($_POST['cgu']) AND !empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])) {
...
}
manandroid Le 14 février 2017 à 05:04 (Édité le 1 janvier 1970 à 01:00)
[url=http://zupimages.net/viewer.php?id=17/07/a3lw.jpg]
[/url]
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
if(isset($_POST['forminscription'])) {
$pseudo = htmlspecialchars($_POST['pseudo']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']);
$mdp = sha1($_POST['mdp']);
$mdp2 = sha1($_POST['mdp2']);
$ip = $_SERVER['REMOTE_ADDR'];
$nav = $_SERVER['HTTP_USER_AGENT'];
if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])) {
$pseudolength = strlen($pseudo);
if($pseudolength <= 255) {
if($mail == $mail2) {
if(filter_var($mail, FILTER_VALIDATE_EMAIL)) {
$reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?");
$reqmail->execute(array($mail));
$mailexist = $reqmail->rowCount();
if($mailexist == 0) {
if($mdp == $mdp2) {
if(empty($_POST['cgu']) {
$insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse, ip, nav) VALUES(?, ?, ?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp, $ip, $nav));
$erreur = "Votre compte a bien été créé !";
}else{
$erreur = "Vous n'êtes pas d'accord avec les conditions de service";
}
} else {
$erreur = "Vos mots de passes ne correspondent pas !";
}
} else {
$erreur = "Adresse mail déjà utilisée !";
}
} else {
$erreur = "Votre adresse mail n'est pas valide !";
}
} else {
$erreur = "Vos adresses mail ne correspondent pas !";
}
} else {
$erreur = "Votre pseudo ne doit pas dépasser 255 caractères !";
}
} else {
$erreur = "Tous les champs doivent être complétés !";
}
}
?>
Johan-Krn Le 14 février 2017 à 05:39 (Édité le 1 janvier 1970 à 01:00)
Dernière précision pour la condition c'est différent de vide donc comme sa --> !empty sa ferra "si cgu est différent de vide alors j'insert mon utilisateur" parce que empty veut dire vide en gros sa aurais fait "si cgu est vide j'insert mon utilisateur"
if(!empty($_POST['cgu'])){
$insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse, ip, nav) VALUES(?, ?, ?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp, $ip, $nav));
$erreur = "Votre compte a bien été créé !";
}else{
$erreur = "Vous n'êtes pas d'accord avec les conditions de service";
}
manandroid Le 14 février 2017 à 18:41 (Édité le 14 février 2017 à 18:50)
Oui j'ai vue sa il ya toujours un bug avec la variable sa bloque sur "Vous n'êtes pas d'accord avec les conditions de service" Coché ou pas
Donc je que je vais faire vue que je vien de trouvé sa c'est mettre un " required" dans le html et viré la partie php qui concerne le cgu
Code html où je met mon required, qui fonctionne quand même 😀
ps: Je laisse ouvert le topic pour de future réponse pour le moment et si après sa il y a rien je fermerais par la suite
<tr> <td></td>
<td align="right">
<br />
<input type="checkbox" name="cgu_accept_ins" id="cgu" required />
<label for="cgu"><FONT color="FFFAFA">J'accepte les <a href="#">Conditions Générales d'Utilisation</a></FONT></label>
</td>
</tr>
<tr>
Johan-Krn Le 14 février 2017 à 18:49 (Édité le 1 janvier 1970 à 01:00)
manandroid Le 14 février 2017 à 18:52 (Édité le 1 janvier 1970 à 01:00)
C'est bizarre pourtant le code est bien réaliser :/
Zbuu Le 15 février 2017 à 10:53 (Édité le 15 février 2017 à 10:55)
Dans ton html ton input cgu à l'attribut name : cgu_accept_ins
Donc tu dois modifier la condition que @toutpac ta donné :
if(!empty($_POST['cgu'])){
par :
if(!empty($_POST['cgu_accept_ins'])){
C'est bizarre pourtant le code est bien réaliser :/Si tu n'a pas le résultat voulu ou une erreur c'est forcément qu'il y a une erreur dans ton code, PHP n'est pas magique ça ne fonctionne pas tout seul (c'est pareil pour tout les langages de programmation d'ailleurs) 😀
manandroid Le 15 février 2017 à 15:54 (Édité le 1 janvier 1970 à 01:00)
Oui j'avais remarquer cette erreur ce matin même avant ton message, mais j'avais pas le temps d'aller sur le forum pour le dire , mais merci à toi & à @toutpc de m'avoir aidé