Checkbox et PHP !
Résolu
Legrandfifou
Messages postés
109
Date d'inscription
Statut
Membre
Dernière intervention
-
ReDLoG Messages postés 243 Date d'inscription Statut Membre Dernière intervention -
ReDLoG Messages postés 243 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Checkbox et PHP !
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
4 réponses
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)
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
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<~
<input name="checkbox1" id="checkbox1" type="checkbox" value="accept" />
vérifie tes $_POST avec
que tu places avant
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.
Pense à mettre ton sujet en résolu et bonne prog.
Cordialement.