Boucle et select
Fermé
theananas
-
22 nov. 2020 à 23:16
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 23 nov. 2020 à 00:32
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 23 nov. 2020 à 00:32
A voir également:
- Boucle et select
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Mon PC s'allume puis s'éteint tout seul. Que faire ? ✓ - Forum Matériel & Système
- Please select boot device - Forum Windows
- Boucle cmd - Forum Programmation
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
2 réponses
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
Modifié le 22 nov. 2020 à 23:26
Modifié le 22 nov. 2020 à 23:26
Bonjour,
<select name="mois"> <?php for ($i = 1; $i <= 12; $i++) { echo "<option value='$i' > $i </option>"; } ?> </select>
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
23 nov. 2020 à 00:32
23 nov. 2020 à 00:32
Il semble qu'il y ait quelques erreurs dans ton code.
je t'invite à lire et à appliquer le contenu de ce lien pour tes prochains code.
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
A noter que le MD5 n'est plus la bonne méthode pour hasher tes mots de passes.
Tourne toi vers la fonction password_hash et pour "vérifier le password", la fonction password_verify
https://www.php.net/manual/fr/function.password-hash.php
Tu sembles également avoir oublié de mettre le code de connexion à ta bdd...
Tu n'as pas non plus utilisé la "bonne" syntaxe pour ton insert. (alors oui, en mysql elle peut fonctionner.. mais c'est fortement déconseillé et elle ne fonctionne pas pour les autres SGBD )
Je vois également que tu avais n'avais pas placé tes balises form correctement par rapport à tes balises table.
Bref,
Voici à quoi il devrait ressembler :
Si ça ne marche toujours pas, merci de nous donner les éventuels messages d'erreur... et montre nous le code généré (en faisant CTRL + u ) dans ton navigateur lorsque la page est affichée.
je t'invite à lire et à appliquer le contenu de ce lien pour tes prochains code.
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
A noter que le MD5 n'est plus la bonne méthode pour hasher tes mots de passes.
Tourne toi vers la fonction password_hash et pour "vérifier le password", la fonction password_verify
https://www.php.net/manual/fr/function.password-hash.php
Tu sembles également avoir oublié de mettre le code de connexion à ta bdd...
Tu n'as pas non plus utilisé la "bonne" syntaxe pour ton insert. (alors oui, en mysql elle peut fonctionner.. mais c'est fortement déconseillé et elle ne fonctionne pas pour les autres SGBD )
Je vois également que tu avais n'avais pas placé tes balises form correctement par rapport à tes balises table.
Bref,
Voici à quoi il devrait ressembler :
<?php session_start(); // affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // Connexion à la bdd // ??? tu as oublié de mettre la connexion à ta bdd ici... ?? $AfficherFormulaire=1; //récupération PROPRE des variables AVANT de les utiliser $nom = !empty($_POST['nom']) ? trim($_POST['nom']) : NULL; $prenom = !empty($_POST['prenom']) ? trim($_POST['prenom']) : NULL; $pseudo = !empty($_POST['pseudo']) ? trim($_POST['pseudo']) : NULL; $mdp = !empty($_POST['mdp']) ? trim($_POST['mdp']) : NULL; $mdp_confirm = !empty($_POST['mdp_confirm']) ? trim($_POST['mdp_confirm']) : NULL; $email = !empty($_POST['email']) ? trim($_POST['email']) : NULL; /** * Execute une requête mysqli */ function dbQuery($sql){ global $mysqli; if (!$res = mysqli_query($mysqli, $sql)) { printf("Message d'erreur : %s\n", mysqli_error($mysqli)); exit; } return $res; } function getUserByPseudo($pseudo){ $sql = "SELECT * FROM membres WHERE pseudo='".$pseudo."'"; return $res; } function addUser($pseudo,$mdp){ $password = password_hash($dmp); // A la place du MD5 qui n'est pas sécuritsé !! $sql = "INSERT INTO membres (pseudo,mdp) VALUES('".$pseudo."','".$password."')"; $res = dbQuery($sql); return $res; } if($pseudo && $mdp){ if(!$mdp){ echo "Veuillez écrire votre mot de passe."; } elseif(!$nom){ echo "Veuillez écrire votre nom."; } elseif(!$prenom){ echo "Veuillez écrire votre prénom."; } elseif(!$mdp_confirm){ echo "Veuillez confirmer votre mot de passe."; } elseif(!$pseudo){ echo "Veuillez écrire votre pseudo."; } elseif(strlen($pseudo)>15)) { echo "Le pseudo est trop long, il dépasse 15 caractères."; } elseif($mdp != $mdp_confirm)) { echo 'Les deux mots de passe doivent être identiques.'; } elseif(!$email){ echo "Veuillez écrire votre adresse mail."; } elseif(mysqli_num_rows(getUserByPseudo($pseudo)))>=1 ){ echo "Ce pseudo est déjà utilisé."; }else{ if(! addUser($pseudo,$mdp)){ echo "Une erreur s'est produite: ".mysqli_error($mysqli); } else { echo "Vous êtes inscrit !"; //on affiche plus le formulaire $AfficherFormulaire=0; } } } if($AfficherFormulaire==1){ ?> <br /> <form method="post" action=""> <table border="1" align="center"> <tr> <td> Nom : <input type="text" name="nom"> <br /> </td> <td> Prénom : <input type="text" name="prenom"> <br /> </td> <td> Pseudo : <input type="text" name="pseudo"> <br /> </td> <td> Mot de passe : <input type="password" name="mdp"> <br /> </td> <td> Confirmation : <input type="password" name="mdp_confirm"> <br /> </td> <td> Email : <input type="text" name="email"> <br /> </td> <td> Date de naissance : <select name="mois"> <?php for ($i=1; $i<= 12; $i++) { echo "<option value='".$i."'>".$i."</option>"; } ?> </select> <br /> </td> </tr> <tr align="center"> <td colspan="6"> <input type="submit" value="S'inscrire"> </td> </tr> </table> </form>
Si ça ne marche toujours pas, merci de nous donner les éventuels messages d'erreur... et montre nous le code généré (en faisant CTRL + u ) dans ton navigateur lorsque la page est affichée.
22 nov. 2020 à 23:59
vous pouvez tester par vous même cela ne fonctionne pas...