Formulaire d'authentification
Résolu
labourette
Messages postés
657
Date d'inscription
Statut
Membre
Dernière intervention
-
labourette Messages postés 657 Date d'inscription Statut Membre Dernière intervention -
labourette Messages postés 657 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Après beaucoup de recherche pour un formulaire d'authentification pour pouvoir l'adapter à mon site, je voudrais vous demander si vous pouvez m'aider.
Un simple formulaire j'aurai pas de soucis mais ce que je souhaiterai est un peu particulier.
J'ai une table de Membre avec plusieurs champs tout est renseigné dans la BDD
id
Rid (relation avec la table utilisateur)
login_membre
password_membre
login_admin
password_admin
admin_1 (zéro ou 1) case à cocher
admin_2 (zéro ou 1) case à cocher
admin_3 (zéro ou 1) case à cocher
admin_4 (zéro ou 1) case à cocher
J'ai un formulaire d'authentification sur la page d'accueil, comment faudrait-il faire pour que chaque membre et chaque admin soit reconnu avec leurs login et password respectifs.
Je vous dit un grand merci pour ceux qui pourrons m'aider pour mon problème.
Cordialement
Après beaucoup de recherche pour un formulaire d'authentification pour pouvoir l'adapter à mon site, je voudrais vous demander si vous pouvez m'aider.
Un simple formulaire j'aurai pas de soucis mais ce que je souhaiterai est un peu particulier.
J'ai une table de Membre avec plusieurs champs tout est renseigné dans la BDD
id
Rid (relation avec la table utilisateur)
login_membre
password_membre
login_admin
password_admin
admin_1 (zéro ou 1) case à cocher
admin_2 (zéro ou 1) case à cocher
admin_3 (zéro ou 1) case à cocher
admin_4 (zéro ou 1) case à cocher
J'ai un formulaire d'authentification sur la page d'accueil, comment faudrait-il faire pour que chaque membre et chaque admin soit reconnu avec leurs login et password respectifs.
Je vous dit un grand merci pour ceux qui pourrons m'aider pour mon problème.
Cordialement
A voir également:
- Formulaire d'authentification
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Double authentification google - Guide
- Formulaire de reclamation instagram - Guide
- Authentification transcash avis ✓ - Forum Consommation & Internet
15 réponses
Hello, à mon avis pour résoudre ton problème il faudra passer par plusieurs "post" (Question/Réponse).
dans un premier temps pourrais-tu me confirmer que les champs cité ci-dessus font bien parti d'une seul et unique table.
ensuite, si j'ai bien compris :
- si le membre est un utilisateur normal il aura son login/password dans login_membre / password_membre et les champs login_admin/password_admin seront vide (et l'inverse si il est administrateur)
avant dernière question :
- que signifie le admin_1/admin_2/admin_3/admin_4 : c'est le degré de l'administateur ? exemple : auteur/modérateur/admin/superadmin ?
pour finir et pour voir si j'ai bien tout compris ce que tu voulais :
- le but c'est faire un code qui vérifie que le login / password rentré par l'internaute soient correctes et de vérifier si il est user normal ou admin ?
J'attends tes réponses ;)
A+
Seezer
dans un premier temps pourrais-tu me confirmer que les champs cité ci-dessus font bien parti d'une seul et unique table.
ensuite, si j'ai bien compris :
- si le membre est un utilisateur normal il aura son login/password dans login_membre / password_membre et les champs login_admin/password_admin seront vide (et l'inverse si il est administrateur)
avant dernière question :
- que signifie le admin_1/admin_2/admin_3/admin_4 : c'est le degré de l'administateur ? exemple : auteur/modérateur/admin/superadmin ?
pour finir et pour voir si j'ai bien tout compris ce que tu voulais :
- le but c'est faire un code qui vérifie que le login / password rentré par l'internaute soient correctes et de vérifier si il est user normal ou admin ?
J'attends tes réponses ;)
A+
Seezer
Bonjour
Déjà merci pour ta réponse.
Oui il y a une seule et unique table
Les champs admin_1 et admin_2 et admin_3 et admin_4 c'est diffents les different degré d'administrateur.
Merci beaucoup si tu peux m'aider
Déjà merci pour ta réponse.
Oui il y a une seule et unique table
Les champs admin_1 et admin_2 et admin_3 et admin_4 c'est diffents les different degré d'administrateur.
Merci beaucoup si tu peux m'aider
Bonsoir,
Quel est l'utilité de mettre un champs login_admin et pass_admin ?
Si un membre à le même pseudo qu'un admin ça se passe comment ?
Quel est l'utilité de mettre un champs login_admin et pass_admin ?
Si un membre à le même pseudo qu'un admin ça se passe comment ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
si un membre se connecte avec ses identifiant membre il sera redirigé vers sa page perso
sinon vers ça page de gestion le concernant
sinon vers ça page de gestion le concernant
Ce que tu pourrais faire et ce qui se fait couramment c'est la chose suivante :
logins
id
Rid (relation avec la table utilisateur)
login
password
status
Ensuite soit status est un varchar et il comporte directement l'info : user/admin/superadmin/desactive etc..
ou soit tu créer une deuxième table :
status devient Sid (relation avec la table status)
status
id
nom (Administrateur)
short (admin)
et comme ça pour chaque logins, tu auras l'id du status le concernant. ce qui permettra de savoir si il est admin/superadmin/utilisateur normal/désactivé
*****************
Disons que c'est une méthode qui me parait un peu plus logique (mais bon chacun à ça méthode je te l'accorde ;) )
à toi de voir dans quel sens tu voudrais partir. dans tous les cas on reste à dispo pour t'aider à développer ton script d'authentification.
A+
Seezer
logins
id
Rid (relation avec la table utilisateur)
login
password
status
Ensuite soit status est un varchar et il comporte directement l'info : user/admin/superadmin/desactive etc..
ou soit tu créer une deuxième table :
status devient Sid (relation avec la table status)
status
id
nom (Administrateur)
short (admin)
et comme ça pour chaque logins, tu auras l'id du status le concernant. ce qui permettra de savoir si il est admin/superadmin/utilisateur normal/désactivé
*****************
Disons que c'est une méthode qui me parait un peu plus logique (mais bon chacun à ça méthode je te l'accorde ;) )
à toi de voir dans quel sens tu voudrais partir. dans tous les cas on reste à dispo pour t'aider à développer ton script d'authentification.
A+
Seezer
Bonjour,
Excuse moi je suis obligé de revenir vers toi.
Pour être sincère cela est bien compliqué pour moi, je voudrais savoir si tu peux jeter un coup d'oeil sur mes fichiers que je t'envoie si tu as un peu de temps pour moi.
En fait cette table qui a 2 login et 2 Password me perturbe.
Ci-joint
1 fichier de ma table SQL
1 fichier PHP de mon formulaire de connexion avec un semblant de vérif
https://www.cjoint.com/c/CKCj5UJAU0h
Je te remercie beaucoup
Excuse moi je suis obligé de revenir vers toi.
Pour être sincère cela est bien compliqué pour moi, je voudrais savoir si tu peux jeter un coup d'oeil sur mes fichiers que je t'envoie si tu as un peu de temps pour moi.
En fait cette table qui a 2 login et 2 Password me perturbe.
Ci-joint
1 fichier de ma table SQL
1 fichier PHP de mon formulaire de connexion avec un semblant de vérif
https://www.cjoint.com/c/CKCj5UJAU0h
Je te remercie beaucoup
Bonjour
Je souhaite toujours créer un formulaire d'identification avec login et Password.
Si quelqu'un pourrais éventuellement me donner un peu d'aide.
Tout au moins me définir par quoi faut-il commencer.
Par exemple,
1) tester si le visiteur à soumis le formulaire
2) on vérifie si le login et Password ne sont pas vide ou null
3) ensuite je ne sais pas, si vous pouvez m'aider à construire ce formulaire avec toutes les questions de sécurité que cela impose.
Je vous serai très reconnaissant.
Merci beaucoup
Cordialement
Je souhaite toujours créer un formulaire d'identification avec login et Password.
Si quelqu'un pourrais éventuellement me donner un peu d'aide.
Tout au moins me définir par quoi faut-il commencer.
Par exemple,
1) tester si le visiteur à soumis le formulaire
2) on vérifie si le login et Password ne sont pas vide ou null
3) ensuite je ne sais pas, si vous pouvez m'aider à construire ce formulaire avec toutes les questions de sécurité que cela impose.
Je vous serai très reconnaissant.
Merci beaucoup
Cordialement
Je n'ai pas vraiment la réponse toute faite, si tu as peu d'utilisateurs qui doivent s'authentifier, tu peux les mettre dans un fichier plutôt qu'en base, enfin c'est du détails, voici une petite solution que je te propose, elle est faites à base d'un fichier mais peu parfaitement s'adapter à un système de bdd.
contenu de ta page php :
contenu du fichier user.php
Ce n'est pas une solution extrêmement sécurisé, mais tout a fait viable pour faire simple. Pas de gestion de cookie, la personne s'auth pour sa session uniquement.
contenu de ta page php :
<?php if(isset($_POST['deconnect'])) $_SESSION = array(); // pour la déconnection include('user.php'); // include le fichier des utilisateurs if(isset($_SESSION['user'])) $_POST['username'] = $_SESSION['user']; // si déjà auth, on set le user en post if(isset($_SESSION['pass'])) $_POST['password'] = $_SESSION['pass']; // si déjà auth, on set le pass en post if(isset($_POST['username']) && isset($_POST['password'])) { // si les champs user et pass sont envoyé. $username = $_POST['username']; $password = $_POST['password']; // on set les variables $username et $password if(array_key_exists($username, $users)) { // si le username existe dans le tableau $users if(preg_match('/'.$password.'/',$users[$username][0])) { // et qu'il y a une correspondance avec le pass $_SESSION['pass'] = $password; // on set en session le user $_SESSION['user'] = $username; // on set en session le mot de passe // Ici le contenu de la page logué // $users[$username][1] contient le niveau de l'utilisateur (user, admin, superadmin ...) } else { echo 'pas de correspondance user/motdepasse'; } // si le mot de passe ne corresponds pas } else { echo 'username does not exist'; } // si le username n'existe pas } else { // Si pas d'authentification ou erreur d'auth, on afficher le formulaire d'auth ?> <form method="post"> <input type="text" placeholder="username" id="username" name="username" /> <br /><br /> <input type="password" placeholder="password" id="password" name="password" /> <br /><br /> <input type="submit" value="se connecter" /> </form> <?php } ?>
contenu du fichier user.php
<?php $users = array( 'administrator' => array('motdepasse', 'admin'), 'pierrepaul' => array('motdepasse', 'user'); ?>
Ce n'est pas une solution extrêmement sécurisé, mais tout a fait viable pour faire simple. Pas de gestion de cookie, la personne s'auth pour sa session uniquement.
Bonjour,
je reviens maintenant vous demander encore un peu de votre temps pour mon fichu formulaire.
En fait j'ai ma BDD avec tous les champs renseignés.
J'ai une table "t_identifiant" et les champs ci-dessous
id_Identifiant
Rid_Adherent qui correspond à la relation avec la table t_gestion_adherent
ContactSortie
ContactSondage
ContactFormation
LoginAdmin
MotDePasseAdmin
LoginMembre
MotDePasseMembre
Alors en fait un Adherent à son login et mot de passe, mais il peut également si il est administrateur avoir un login et mot de passe admin.
Les 3 admin c'est les 3 champs contact, c'est simplement des case à cocher donc 0 ou 1
Avec le même formulaire d'identification.
J'espère que mes explication pourrons vous permettre de pouvoir me donner un coup de main pour un formulaire inhabituel.
Je vous joint le formulaire pour modifier.
Merci beaucoup de votre aide
je reviens maintenant vous demander encore un peu de votre temps pour mon fichu formulaire.
En fait j'ai ma BDD avec tous les champs renseignés.
J'ai une table "t_identifiant" et les champs ci-dessous
id_Identifiant
Rid_Adherent qui correspond à la relation avec la table t_gestion_adherent
ContactSortie
ContactSondage
ContactFormation
LoginAdmin
MotDePasseAdmin
LoginMembre
MotDePasseMembre
Alors en fait un Adherent à son login et mot de passe, mais il peut également si il est administrateur avoir un login et mot de passe admin.
Les 3 admin c'est les 3 champs contact, c'est simplement des case à cocher donc 0 ou 1
Avec le même formulaire d'identification.
J'espère que mes explication pourrons vous permettre de pouvoir me donner un coup de main pour un formulaire inhabituel.
Je vous joint le formulaire pour modifier.
Merci beaucoup de votre aide
<?php //Si l'utilisateur est déja connécté, redirection autre part if(isset($_SESSION['LoginAdmin'])) header('Location: ./index.php'); //Si le formulaire est envoyé if (!empty($_POST)) { //Initialisation des erreurs a vide => aucune erreur a ce niveau $erreurs = ''; //Vérification du formulaire if(!isset($_POST['LoginAdmin']) OR empty($_POST['LoginAdmin'])) $erreurs .= '<span class="erreur">Login incorrect.</span>'; if(!isset($_POST['MotDePasseAdmin']) OR empty($_POST['MotDePasseAdmin'])) $erreurs .= '<span class="erreur">Mot de passe incorrect.</span>'; //Si aucune erreur, on poursuis if(empty($erreurs)) { //Néttoyage des variables $login = trim($_POST['LoginAdmin']); $pass = trim($_POST['MotDePasseAdmin']); //Recherche de l'utilisateur //Lorsque la requete prends des parametres en entré, il faut utiliser les requetes préparés pour éviter les injections sql $resultats = $bdd->prepare('SELECT * FROM t_identifiant WHERE LoginAdmin = :log'); $resultats->execute(array(':log' => $login)); $donnees = $resultats->fetch(PDO::FETCH_ASSOC); //Si la requete n'a pas retourné un résultat, alors le login est incorrecte if(empty($donnees)) { $erreurs = '<span class="erreur">Login incorrect...<br/> Merci de recommencer.</span>'; } /* Si les mots de passe ne corréspondent pas, erreur md5 n'est juste qu'un exemple de fonction pour hasher(crypter) les mots de passes il existe de meilleurs fonctions, a toi de chercher, exemple sha1 Les mots de passes dans la BD doivent etre hashé(crypté), c.a.d que meme toi tu ne peux pas connaitre les mots de passes de tes utilisateurs */ elseif($donnees['MotDePasseAdmin'] != md5($pass)) { $erreurs = '<span class="erreur">Mauvais mot de passe...<br/> Merci de recommencer.</span>'; } //Si tout est OK else { //on cré des variables accessibles depuis toutes les pages $_SESSION['LoginAdmin'] = $login; //$_SESSION['MotDePasseAdmin'] = $donnees['MotDePasseAdmin']; // Aucune raison d'enregistrer le mot de passe //Faire une rediréction header('Location: ./index.php'); } } //Afficher les erreurs si il en existe echo $erreurs; } ?> <form name="form_connexion" action="#" method="post" enctype="multipart/form-data"> <fieldset> <legend>Se connecter</legend><br/> <center> <b> <p style="margin: 5px; padding: 5px;">Réservé aux membres de<br/> LA CLIQUE DE CRUET</p> </b> </center> <br/> <label for="Login">Login :</label> <center><input type="text" id="Login" name="Login" class="Login" tabindex="1"/></center> <br/> <label for="password">Mot de passe :</label> <center><input type="password" id="password" name="password" class="password" tabindex="2"/></center> <center><input src="image/form_connexion.png" width="70%" type="image" class="form_connexion" border="0" Value="" align="middle"/></center> </fieldset> </form>
Bonjour
Je renvoie un post pour mon formulaire d'identification. En fait je n'arrive pas à me connecter déjà en tant qu'Admin.
Pouvez vous me dire ce que vous en pensez si vous avez un peu de temps.
Je vous remercie
Je renvoie un post pour mon formulaire d'identification. En fait je n'arrive pas à me connecter déjà en tant qu'Admin.
Pouvez vous me dire ce que vous en pensez si vous avez un peu de temps.
Je vous remercie
<?php //Si l'utilisateur est déja connécté, redirection autre part if(isset($_SESSION['login_admin'])) header('Location: ./index.php'); //Si le formulaire est envoyé if (!empty($_POST)) { //Initialisation des erreurs a vide => aucune erreur a ce niveau $erreurs = ''; //Vérification du formulaire if(!isset($_POST['login_admin']) OR empty($_POST['login_admin'])) $erreurs .= '<span class="erreur">Login incorrect.</span>'; if(!isset($_POST['password_admin']) OR empty($_POST['password_admin'])) $erreurs .= '<span class="erreur">Mot de passe incorrect.</span>'; //Si aucune erreur, on poursuis if(empty($erreurs)) { //Néttoyage des variables $login = trim($_POST['login_admin']); $pass = trim($_POST['password_admin']); //Recherche de l'utilisateur //Lorsque la requete prends des parametres en entré, il faut utiliser les requetes préparés pour éviter les injections sql $resultats = $bdd->prepare('SELECT * FROM t_identifiant WHERE login_admin = :log'); $resultats->execute(array(':log' => $login)); $donnees = $resultats->fetch(PDO::FETCH_ASSOC); //Si la requete n'a pas retourné un résultat, alors le login est incorrecte if(empty($donnees)) { $erreurs = '<span class="erreur">Login incorrect...<br/> Merci de recommencer.</span>'; } /* Si les mots de passe ne corréspondent pas, erreur md5 n'est juste qu'un exemple de fonction pour hasher(crypter) les mots de passes il existe de meilleurs fonctions, a toi de chercher, exemple sha1 Les mots de passes dans la BD doivent etre hashé(crypté), c.a.d que meme toi tu ne peux pas connaitre les mots de passes de tes utilisateurs */ elseif($donnees['password_admin'] != $pass) { $erreurs = '<span class="erreur">Mauvais mot de passe...<br/> Merci de recommencer.</span>'; } //Si tout est OK else { //on cré des variables accessibles depuis toutes les pages $_SESSION['login_admin'] = $login; //$_SESSION['MotDePasseAdmin'] = $donnees['MotDePasseAdmin']; // Aucune raison d'enregistrer le mot de passe //Faire une rediréction header('Location: ./index.php'); } } //Afficher les erreurs si il en existe echo $erreurs; } ?> <form name="form_connexion" action="#" method="post" enctype="multipart/form-data"> <fieldset> <legend>Se connecter</legend><br/> <center> <b> <p style="margin: 5px; padding: 5px;">Réservé aux membres de<br/> LA CLIQUE DE CRUET</p> </b> </center> <br/> <label for="login_admin">Login :</label> <center><input type="text" id="login_admin" name="login_admin" class="login_admin" tabindex="1"/></center> <br/> <label for="password_admin">Mot de passe :</label> <center><input type="password" id="password_admin" name="password_admin" class="password_admin" tabindex="2"/></center> <center><input src="image/form_connexion.png" width="70%" type="image" class="form_connexion" border="0" Value="" align="middle"/></center> </fieldset> </form>
Bonjour,
Je reviens vers vous pour un petit coup de main s'il vous plait.
Mon formulaire même avec les bon identifiant il ne fonctionne pas je n'arrive pas à trouver l'erreur.
Pouvez vous y jeter un coup d'oeil ?
Je vous remercie beaucoup
Je reviens vers vous pour un petit coup de main s'il vous plait.
Mon formulaire même avec les bon identifiant il ne fonctionne pas je n'arrive pas à trouver l'erreur.
Pouvez vous y jeter un coup d'oeil ?
Je vous remercie beaucoup
<?php session_start(); include('connexion.php'); /* il faut que toutes les variables du formulaire existent*/ if(!isset($_POST['pseudo']) OR empty($_POST['pseudo'])) { /*il faut que tous les champs soient renseignes*/ if ($_POST['pseudo'] != "" && $_POST['pass'] != "") { /*on crypte le mot de passe pour faire le test*/ $passhache = sha1($_POST['pass']); /* on verifie qu'un membre a bien ce pseudo et ce mot de passe*/ $req = $bdd->prepare('SELECT * FROM membre WHERE pseudo = :pseudo AND pass= :pass '); $req->execute(array( 'pseudo' => $_POST['pseudo'], 'pass' => $passhache )); $resultat = $req->fetch(); /*s'il n'y a pas de resultat, on renvoie a la page de connexion*/ if (!$resultat) { header('Location: login.php'); } else { /* on cree les variables de session du membre qui lui serviront pendant sa session*/ $_SESSION['id'] = $resultat['id']; $_SESSION['pseudo'] = $pseudo; $_SESSION['mail'] = $resultat['email']; /*on renvoie sur la page d'accueil*/ header('Location: index.php'); } } else { echo "Il faut remplir tous les champs"; } } else { echo 'Votre pseudo ou mot de passe est incorrect'; } ?>