j'ai écrit un code qui permet d'effectuer différents contrôles sur un formulaire de connexion, mais je pense que celui-ci pourrait être amélioré. Si vous pouviez me faire quelques suggestions à ce sujet, j'en serais ravi.
Voici le code en question :
<?php
session_start();
$pseudo = $_POST['pseudo'];
$pass = $_POST['pass'];
$validite_formulaire = true;
$message_erreur = 'La connexion n\'a pas pu ètre établie pour la(les) raison(s) suivante(s) :<br />';
require_once('configbdd.php');
$connexion = mysql_connect($dbhost, $utilisateur, $mdp) or die(mysql_error());
mysql_select_db($bdd, $connexion) or die(mysql_error());
$requete_1 = ("SELECT id FROM users WHERE pseudo='$pseudo'");
$requete_2 = ("SELECT id FROM users WHERE pass='$pass'");
$requete_3 = ("SELECT pseudo FROM users");
$resultat_1 = mysql_query($requete_1) or die (mysql_error());
$resultat_2 = mysql_query($requete_2) or die (mysql_error());
$resultat_3 = mysql_query($requete_3) or die (mysql_error());
$selection_1 = mysql_fetch_array($resultat_1);
$selection_2 = mysql_fetch_array($resultat_2);
$selection_3 = mysql_fetch_array($resultat_3);
// On vérifie que le champ "Pseudo" a bien été rempli
if (empty($pseudo)) {
$validite_formulaire = false;
$message_erreur .= '- Vous n\'avez pas rempli le champ "Login".<br />';
}
// On vérifie que le champ "Pass" a bien été rempli
if (empty($pass)) {
$validite_formulaire = false;
$message_erreur .= '- Vous n\'avez pas rempli le champ "Pass".<br />';
}
// On contrôle que le mot de passe appartient bien à la personne qui se connecte
if ($selection_1['id'] != $selection_2['id']) {
$validite_formulaire = false;
$message_erreur .= '- Le mot de passe que vous avez indiqué ne correspond pas au pseudo.<br />';
}
// On vérifie que le pseudo existe dans la base de données
if ($_SESSION['pseudo'] != $selection_3['pseudo']) {
$validite_formulaire = false;
$message_erreur .= '- Votre login n\'existe pas dans la base de donnée. Vous devez vous enregistrer pour accéder au contenu.<br />';
}
// Si toutes les vérifications sont validées, on créé des cookies et on redirige l'utilisateur vers la page d'accueil
if ($validite_formulaire = true) {
$expiration = time() + 365*24*3600;
setcookie('pseudo', $pseudo, $expiration);
setcookie('pass', $pass, $expiration);
include('accueil.php');
}
else {
echo $message_erreur;
}
?>