Checkbox et PHP !
Résolu/Fermé
Legrandfifou
Messages postés
109
Date d'inscription
samedi 3 mai 2014
Statut
Membre
Dernière intervention
17 mars 2017
-
19 mai 2015 à 22:03
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 - 11 juin 2015 à 11:28
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 - 11 juin 2015 à 11:28
A voir également:
- Checkbox et PHP !
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Php alert ✓ - Forum PHP
- Bouton php - Forum PHP
- \R php ✓ - Forum PHP
4 réponses
Legrandfifou
Messages postés
109
Date d'inscription
samedi 3 mai 2014
Statut
Membre
Dernière intervention
17 mars 2017
5
23 mai 2015 à 14:57
23 mai 2015 à 14:57
UP :) Je débute désolé si mes fautes paraisse hyper simple mais elles ne le sont pas pour moi :(
canarder
Messages postés
1714
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
13 mai 2018
355
19 mai 2015 à 22:08
19 mai 2015 à 22:08
Oui, essaye, mais il manque du code pour mieux voir.
En plus, isset($_POST) est inutile, et tu utilises trop de parenthèses.
(=== veut dire égal et de même type)
En plus, isset($_POST) est inutile, et tu utilises trop de parenthèses.
if(isset($_POST['mavar']) && $_POST['mavar']==='mavaleur') {
//
}
(=== veut dire égal et de même type)
ElementW
Messages postés
4814
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 227
19 mai 2015 à 22:11
19 mai 2015 à 22:11
Le triple égal est une bonne pratique, mais ici il ne diffère pas du
==car les valeurs de
$_POSTou
$_GETsont soit des strings, soit indéfinies; or le 2e cas est intercepté par le
isset, et le premier est vrai si le 2e ne l'est pas.
Legrandfifou
Messages postés
109
Date d'inscription
samedi 3 mai 2014
Statut
Membre
Dernière intervention
17 mars 2017
5
Modifié par Legrandfifou le 19/05/2015 à 22:31
Modifié par Legrandfifou le 19/05/2015 à 22:31
Merci de votre réponse plus que rapide , le code n'est pas complet mais il est englobé par TOUT le reste je vais mettre le code entier :)
Donc il doit accepter les CGU , si il ne coche pas accept alors sa met l'erreur ( sa marche ) mais j'ai tester avec ton bout de code en donnant une value a mon checkbox et ca ne semble pas fonctionner je dois surement me tromper
<?php
$bdd = new PDO ('mysql:host=localhost;dbname=connexion', 'root');
// On vérifie que le formulaire à été complété et si les champs ne sont pas vides
if(isset($_POST['submit']))
{
if ( isset($_POST) && (!empty($_POST['pseudo'])) && (!empty($_POST['password'])) && (!empty($_POST['email'])))
{
if(isset($_POST['checkbox1']) && $_POST['checkbox1']==='accept') {
//On met le résultat pseudo du formulaire dans $pseudo
$pseudo = addslashes($_POST["pseudo"]) ;
$email = addslashes($_POST["email"]) ;
//On sélectionne dans la table 'utilisateurs' les pseudo qui sont les mêmes que le pseudo tapé dans le formulaire
$query = $bdd->query("SELECT pseudo FROM membres WHERE pseudo = '$pseudo'");
//On compte le nombre de réponse
$count = $query->rowCount();
//Dans le cas où il y a une réponse, qu'un pseudo dans la table correspont au pseudo tapé
if($count == 1)
{
// Pseudo déjà utilisé
echo '<div class="error_pseudo"><img src="refused.png"/><div class="refused_message">Ce pseudo est déjà utilisé</div></div>';
}
else
{
// Pseudo libre, on l'insère dans la table
$pass_hache = sha1($_POST['password']);
$req = $bdd->prepare("INSERT INTO membres(pseudo, password, email) VALUES('$pseudo', '$pass_hache', '$email')");
$req->execute(array(
'pseudo' => $pseudo,
'password' => $pass_hache,
'email' => $email));
echo '<div class="message_ok"><img src="granted.png"/><div class="granted_message">Vous êtes désormais inscris sur notre site web !</div></div>';
}
}
if (isset($_POST) && (empty($_POST['pseudo'])) OR (empty($_POST['password'])) OR (empty($_POST['email'])) )
{
echo '<div class="error_message_pseudo_case"><img src="attention.png"/><div class="error_message_pseudo">Merci de renseigner un pseudo/mot de passe/email!</div></div>';
}
if (isset($_POST) && (empty($_POST['checkbox1'])) )
{
echo '<div class="error_message_pseudo_case"><img src="attention.png"/><div class="error_message_pseudo">Merci d\'accepter les CGU ! </div></div>';
}
}
}
?>
<div class="inscription_formulaire_case">
<form action="" method = "POST">
<label for="pseudo"> Pseudo (4 à 20 caractères !) : </label> </br>
<input type="texte" name = "pseudo" /> </br>
<label for="password"> Password : </label> </br>
<input type="password" name = "password" /> </br>
<label for="email"> Email : </label> </br>
<input type="email" name = "email" /> </br>
<p>Acceptez-vous les conditions d'utilisations ?</p>
<input id="checkbox1" type="checkbox" value="accept" /> Accept
</div>
<button type="submit" name="submit" class="submit">Inscription</button>
</form>
Donc il doit accepter les CGU , si il ne coche pas accept alors sa met l'erreur ( sa marche ) mais j'ai tester avec ton bout de code en donnant une value a mon checkbox et ca ne semble pas fonctionner je dois surement me tromper
canarder
Messages postés
1714
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
13 mai 2018
355
Modifié par canarder le 20/05/2015 à 13:35
Modifié par canarder le 20/05/2015 à 13:35
Sans regarder ton code en détails et répondre vraiment, tu peux déjà utiliser PDO correctement : https://www.php.net/manual/fr/pdo.prepare.php (regarde les deux exemples).
Insérer les variables dans la commande sql, même en utilisant d'autres commandes avant pour parser les variables, n'est pas une bonne idée ; avec prepare(), PDO te le fait correctement, et tu es sûr que c'est sécurisé.
___/\_canarder_/\___
~>Un fork de Firefox avec de meilleurs choix : Pale Moon<~
Insérer les variables dans la commande sql, même en utilisant d'autres commandes avant pour parser les variables, n'est pas une bonne idée ; avec prepare(), PDO te le fait correctement, et tu es sûr que c'est sécurisé.
___/\_canarder_/\___
~>Un fork de Firefox avec de meilleurs choix : Pale Moon<~
Legrandfifou
Messages postés
109
Date d'inscription
samedi 3 mai 2014
Statut
Membre
Dernière intervention
17 mars 2017
5
20 mai 2015 à 15:59
20 mai 2015 à 15:59
Je ne comprend pas pourquoi ce n'est pas juste , pour je ne peut pas faire comme ca ?
Legrandfifou
Messages postés
109
Date d'inscription
samedi 3 mai 2014
Statut
Membre
Dernière intervention
17 mars 2017
5
21 mai 2015 à 21:43
21 mai 2015 à 21:43
UP
Modifié par Kalo le 24/05/2015 à 18:38
<input name="checkbox1" id="checkbox1" type="checkbox" value="accept" />
vérifie tes $_POST avec
que tu places avant
24 mai 2015 à 19:38
Dans ton script PHP, tu tentes de récupérer une valeur contenue dans $_POST['checkbox1']
Or dans ton formulaire cette valeur n'existe pas, et pour cause le champ input sensé retourné cette valeur ne possède pas l'attribut name que tu confonds avec l'id qui lui est destiné au CSS et/ou au javascript :
Je te proposes de modifier la syntaxe du champ input comme ceci :
Tout devrait fonctionner normalement ainsi.
Cordialement.
24 mai 2015 à 19:47
24 mai 2015 à 19:58
Pense à mettre ton sujet en résolu et bonne prog.
Cordialement.
7 juin 2015 à 00:07