Bonjour à tous,
Ayant un peu la tête en vrac depuis ce matin à me taper du code etc pour un projet d'étude, je me suis attaqué tant bien que mal à mettre en place un système de "login" tout simple en php/MySQL.
Je suis comme qui dirait presque au poil de réussir mais le script ne fonctionne pas dans sa totalité. J'utilise pour identifier mes utilisateurs une session qui prend la valeur "true" lorsque le l'utilisateur est trouvé et que le password associé correspond à l'enregistrement dans la base de donnée. (Je ne crypte pas les mots de pass, le projet est un simple concept et non une réel optique de mise en service dans une entreprise.
Différents résultats obtenu avec le script:
-> Si utilisateur non trouvé, le formulaire reste avec un message d'erreur au dessus "Nom d'utilisateur non trouvé" (fonctionne)
-> Si utilisateur trouvé mais que le password ne correspond pas, message d'erreur = "Le mot de pass ne correspond pas à l'identifiant entré" (fonctionne)
-> Si utilisateur trouvé et password correspond, le module de login disparait pour laisser place à "Bienvenue 'Utilisateur'! Logout" (ne fonctionne pas)
Pour ce dernier cas de figure qui ne fonctionne pas, le résultat me renvoi complètement un truc vide, comme si le "if else" ne fonctionnait pas du tout et donc, le formulaire n'apparait plus du tout tant que je ne met pas ma $_SESSION à false manuellement.
Voici mon code, si une âme charitable pourrait jeter un oeil s'il voit le pourquoi du problème.
Voila, merci d'avance pour l'aide que je pourrais avoir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 <?php include("admin/fonctions.php"); connexion(); // connexion base de donnée getConfig($titre_site, $banniere, $responsable); // récupération des infos générales du site session_start(); $errorMessage = ''; // message d'erreur vide if (isset($_POST['login']) && isset($_POST['pw'])) { // Si load de la page avec le formulaire de login $search_ident="SELECT id_user, login FROM utilisateur"; // Selection de tous les users $req=mysql_query($search_ident) or die('Erreur SQL !<br />'.$search_ident.'<br />'.mysql_error()); $ident_trouve=false; while ($data = mysql_fetch_array($req)) { if($data['login']==$_POST['login']){ // Si le login entré correspond à un enregistrement de la colonne "login" $ident_trouve=true; // utilisateur trouvé $get_id_user=$data['id_user']; // récupère l'id pour selectionner la ligne entière (password) $name_user=$data['login']; // sauvegarde du nom de l'user break; } } if($ident_trouve==false){ $errorMessage="<font color='red'>Nom d'utilisateur non trouvé</font>"; //utilisateur non trouvé } else{ $get_enregistrement_user="SELECT password FROM utilisateur WHERE id_user='{$get_id_user}'"; // Selection de la ligne entière de l'utilisateur concerné $req=mysql_query($get_enregistrement_user) or die('Erreur SQL !<br />'.$get_enregistrement_user.'<br />'.mysql_error()); $identification=false; while ($data = mysql_fetch_array($req)) { if($data['password']==$_POST['pw']){ // si password correspond à celui de la ligne $identification=true; // L'identification pourra être faite break; } } if($identification){ // Si ident peut être faite // On met la session en route (les identifiants/mdp correspondent à un enregistrement de la table) $_SESSION['basic_is_logged_in'] = true; // On redire vers la même page mais en étant logué header('Location: index.php'); exit; } else{ $errorMessage = "<font color='red'>Le mot de pass ne correspond pas à l'identifiant entré</font>"; } } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title><?php echo $titre_site ?></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body id="page1"> <div class="tail-top"> <div class="tail-bottom"> <div class="body-bg"> <!-- HEADER --> <div id="header"> <div class="extra"><img src="images/header-img.jpg" alt="" /></div> <div class="row-1"> <div class="fleft"><a href="home.php"><img src="images/logo.gif" alt="" /></a></div> <div class="fright"> <?php if ($errorMessage == '' && $_SESSION['basic_is_logged_in'] == true) { echo "Bienvenue ".$name_user."! <a href='logout.php'><img src='images/logout.png'></a>"; } else{ if ($errorMessage != ''){ echo $errorMessage."<br>"; } echo "<form action='index.php' method='post'> Identifiant: <input type='text' name='login' size='9' /> Mot de pass: <input type='password' name='pw' size='9' /> <input type='image' src='images/login.png' /><br /> <font size='-2'><a href='registration.php'>S'enregistrer</a> | <a href='passwordlost.php'>Mot de pass perdu?</a> | <a href='admin/administration.php'><img src='images/administration-button.png' title='Panel d\'administration' /></a></font> </form>"; } ?>
Apo.
Partager