Facebook
Télécharger
Noter:

Ajouté le 2021-12-02
Visionné 74736 fois
4.5/5 (23)

Formulaire de connexion en PHP

Description

Formulaire de connexion, simple, en utilisant l'extension MySQLi de PHP et un form HTML.

<?php
/*
Page: connexion.php
*/

//à mettre tout en haut du fichier .php, cette fonction propre à PHP servira à maintenir la $_SESSION
session_start();

//si le bouton "Connexion" est cliqué
if(isset($_POST['connexion'])){

// on vérifie que le champ "Pseudo" n'est pas vide
// empty vérifie à la fois si le champ est vide et si le champ existe belle et bien (is set)
if(empty($_POST['pseudo'])){
echo "Le champ Pseudo est vide.";
} else {

// on vérifie maintenant si le champ "Mot de passe" n'est pas vide"
if(empty($_POST['mdp'])){
echo "Le champ Mot de passe est vide.";
} else {

// les champs pseudo & mdp sont bien postés et pas vides, on sécurise les données entrées par l'utilisateur
//le htmlentities() passera les guillemets en entités HTML, ce qui empêchera en partie, les injections SQL
$Pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES, "UTF-8");
$MotDePasse = htmlentities($_POST['mdp'], ENT_QUOTES, "UTF-8");

//on se connecte à la base de données:
$mysqli = mysqli_connect("domaine.tld", "nom d'utilisateur", "mot de passe", "base de données");

//on vérifie que la connexion s'effectue correctement:
if(!$mysqli){
echo "Erreur de connexion à la base de données.";
} else {

//on fait maintenant la requête dans la base de données pour rechercher si ces données existent et correspondent:
//si vous avez enregistré le mot de passe en md5() il vous faudra faire la vérification en mettant mdp = '".md5($MotDePasse)."' au lieu de mdp = '".$MotDePasse."'
$Requete = mysqli_query($mysqli,"SELECT * FROM membres WHERE pseudo = '".$Pseudo."' AND mdp = '".$MotDePasse."'");

//si il y a un résultat, mysqli_num_rows() nous donnera alors 1
//si mysqli_num_rows() retourne 0 c'est qu'il a trouvé aucun résultat
if(mysqli_num_rows($Requete) == 0) {
echo "Le pseudo ou le mot de passe est incorrect, le compte n'a pas été trouvé.";
} else {

//on ouvre la session avec $_SESSION:
//la session peut être appelée différemment et son contenu aussi peut être autre chose que le pseudo
$_SESSION['pseudo'] = $Pseudo;
echo "Vous êtes à présent connecté !";
}
}
}
}
}
?>
<!-- 
Les balises <form> servent à dire que c'est un formulaire
on lui demande de faire fonctionner la page connexion.php une fois le bouton "Connexion" cliqué
on lui dit également que c'est un formulaire de type "POST" (récupéré via $_POST en PHP)

Les balises <input> sont les champs de formulaire
type="text" sera du texte
type="password" sera des petits points noir (texte caché)
type="submit" sera un bouton pour valider le formulaire
name="nom de l'input" sert à le reconnaitre une fois le bouton submit cliqué, pour le code PHP (récupéré via $_POST["nom de l'input"] en PHP)
-->

<form action="connexion.php" method="post">
Pseudo: <input type="text" name="pseudo" />
<br />
Mot de passe: <input type="password" name="mdp" />
<br />
<input type="submit" name="connexion" value="Connexion" />
</form>



Besoin de travaux pour votre site ?

Je suis disponible, contactez-moi !

Commentaires

Ajouter un commentaire

Commenter
Pseudo/Nom
Email
Message
Captcha

Captcha temporairement HS, tapez 2 svp
memo1memo2
Commenter

VeenZ le 11 Octobre 2013 à 12:10

Merci c'est un très bon code !

Very well! le 02 Octobre 2015 à 13:41

Merci pour ce code clair et pratique.

Pour la vérification des champs du formulaire, vous pouvez faire comme ceci:

if(empty($_POST['pseudo']) OR empty($_POST['mot_de_passe'])) {
echo "Une des champs est vide.";
} else {
...

bernard le 05 Février 2017 à 17:08

bonjour, je vais essayer d'utiliser votre code pour faire une page de connexion sur mon site. Par contre, une fois la connexion établie, peut-on renvoyer le membre vers une des pages du site web. Merci pour votre code.

admin le 05 Février 2017 à 22:05

Bonjour,

bien évidement, il vous suffit pour cela de faire une redirection avec la fonction PHP header().

A la place du texte:

echo "Vous êtes à présent connecté !";


Mettez:
header("Location: http://www.example.com/votre-page"); // Redirection du navigateur
exit;//on affiche pas le reste de la page pour faire une redirection parfaite et sans erreurs


Assurez-vous d'utiliser cette fonction au dessus de la balise <html> de votre page pour qu'elle ne produise pas d'erreur et fonctionne parfaitement.

tokosel le 10 Novembre 2018 à 03:10

merci pour le script j'ai pu l'adapter

Gaël Mk le 30 Mai 2020 à 19:15

Merci pour ce code mais j'ai un petit souci,
Une fois rentré le pseudo et le mot de pass après vérification, rien n'est enregistré dans m BDD dans la table membres
Merci d'avance

admin le 31 Mai 2020 à 21:18

Bonjour, il vous faut débuguer petit à petit: pour connaitre l'erreur.

niki le 03 Août 2020 à 10:15

Bonjour Monsieur et merci pour pour le code. je travail sur un formulaire d'inscription d'un étudiant pour un exposé à l'école. je souhaite afficher les informations saisir par l'étudiant en question à l'écran pour qu'il puis apporter une modification s'il y a erreur avant de l 'enregistrer dans la base de donnée. merci de bien vouloir me mettre sur la voie.

admin le 03 Août 2020 à 10:35

Bonjour,

vous avez ce tuto pour ré-afficher les champs de formulaire en cas d'erreur: https://www.c2script.com/scripts/reafficher-les-champs-du-formulaire-en-php-s38.html

Talwa le 07 Novembre 2020 à 20:02

comment mettre une page secrète par exemple lorsque je demande une page user avant de mettre le login et password if faut passer par une phase authentification qui est d'abord le form de login et et de passe mais je ne sais pas comment le faire

admin le 07 Novembre 2020 à 23:16

Bonjour, vous pouvez prendre exemple sur le script d'utilisateur connecté

aliou le 20 Novembre 2020 à 00:32

c bien

oui le 08 Juin 2021 à 15:16

MERCI!!!!!!!

Claire le 14 Octobre 2021 à 21:07

Bonjour,

Comment faire si le mot est crypté avec bcrypt ?

J'ai essayé avec password_verify($password, $hash)

Et cela ne fonctionne pas, avant j'ai bien sûr déclaré la variable $hash

admin le 14 Octobre 2021 à 21:39

Bonjour, voir la doc pour faire fonctionner le password_hash

vital le 15 Août 2022 à 23:44

bonsoir suis un debutant en programmation et j'aimerais savoir le fait que mon bouton connexion soit avec la balise <button> posera probleme? vu que le votre a ete fait avec un input.

admin le 16 Août 2022 à 00:48

Mettez simplement l'attribut type avec la valeur submit à votre button pour le transformer en bouton de soumission.

Exemple :

<button type="submit">Valider</button>

Retour à la liste des scripts