Dicton du 10 Décembre:
À la Sainte-Julie, le soleil ne quitte pas son lit.

Télécharger
Noter:

Ajouté le 19/05/2013
Visionné 38220 fois
4.8/5

Formulaire de connexion en PHP

Description

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

Code source (PHP)

<?php
/*
Page: connexion.php
*/
session_start(); // à mettre tout en haut du fichier .php, cette fonction propre à PHP servira à maintenir la $_SESSION
if(isset($_POST['connexion'])) { // si le bouton "Connexion" est appuyé
// 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 sont bien posté et pas vide, on sécurise les données entrées par le membre:
$Pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES, "ISO-8859-1"); // le htmlentities() passera les guillemets en entités HTML, ce qui empêchera les injections SQL
$MotDePasse = htmlentities($_POST['mdp'], ENT_QUOTES, "ISO-8859-1");
//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 existe et correspondent:
$Requete = mysqli_query($mysqli,"SELECT * FROM membres WHERE pseudo = '".$Pseudo."' AND mdp = '".$MotDePasse."'");//si vous avez enregistré le mot de passe en md5() il vous suffira de faire la vérification en mettant mdp = '".md5($MotDePasse)."' au lieu de 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:
$_SESSION['pseudo'] = $Pseudo; // la session peut être appelée différemment et son contenu aussi peut être autre chose que le pseudo
echo "Vous êtes à présent connecté !";
}
}
}
}
}
?>


La partie HTML (le formulaire):

Code source (HTML)

<!-- 
Les balises <form> sert à 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"

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
-->

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

Commentaires

Merci c'est un très bon code !

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 {
...

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.

Bonjour,

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

A la place du texte:

Code source (PHP)

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


Mettez:

Code source (PHP)

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.

merci pour le script j'ai pu l'adapter

Ajouter un commentaire

Pseudo/Nom *
Email *
Message *
La balise [code]Votre code...[/code] peut être utilisée


ATTENTION! Ce formulaire est exclusivement réservé aux commentaires
Pour toutes demandes d'aide, veuillez ajouter votre demande sur le forum svp

Captcha * sept × 2 =

Les champs marqués d'un * sont obligatoires.

Retour à la liste des scripts

Flag Counter