Boucle et select
theananas
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, je suis debutante en php et j'aimerais avoir votre aide sur mon programme
Voilà je voudrais faire une boucle php dans mon code html pour un formulaire d'inscription mais peut importe ce que j'essaie, cela ne fonctionne pas
voici un exemple qui ne marche pas ci dessous, il n'affiche que $i
Voilà je voudrais faire une boucle php dans mon code html pour un formulaire d'inscription mais peut importe ce que j'essaie, cela ne fonctionne pas
<select name="jour"> <option value="1">01 <option value="2">02 ... <option value="31">31 </option> </select> / <select name="mois"> <option value="1">1 <option value="2">2 <option value="3">3 ... <option value="12">12</option> </select> / <select name="annee"> <option value="1994">1994 <option value="1995">1995 ... <option value="2007">2007</option> </select>
voici un exemple qui ne marche pas ci dessous, il n'affiche que $i
<?php <select name="mois"> for ($i = 1; $i < 13; $i++) { echo '<option value=\'' . $i . '\'>' . $i . '</option>' } </select> ?>
A voir également:
- Boucle et select
- Télé samsung s'éteint et se rallume en boucle - Forum Téléviseurs
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Please select boot device - Forum Windows
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Reboot and select proper boot device asus - Forum Matériel & Système
2 réponses
Bonjour,
<select name="mois"> <?php for ($i = 1; $i <= 12; $i++) { echo "<option value='$i' > $i </option>"; } ?> </select>
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.
vous pouvez tester par vous même cela ne fonctionne pas...