Bonjour,

Je vais expliquer brièvement ce que j'essaie de faire, je suis entrain de développer un espace membre pour un jeu que je développe en C++ et je souhaite faire une page de connexion, et pour ce faire j'ai besoins de comparer le hash dans la BDD pour pouvoir se connecter au compte.
Exemple, mon pseudo est admin et mon mot de passe 1234, je souhaite qu'ont puisse se connecter qu'avec le bon mot de passe et pseudo (un espace membre quoi)
J'ai donc pris un script sur internet, puis je l'ai modifier à ma guise (en y rajoutant le MD5)

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
86
 
<?php
/* Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1) */
header('Content-type: text/html; charset=UTF-8');
 
/* Création d'une fonction - utilisée dans la récupération des variables - qui teste la configuration get_magic_quotes_gpc du serveur.
Si oui, supprime avec la fonction stripslashes les antislashes "\" insérés dans les chaines de caractère des variables gpc (GET, POST, COOKIE) */
function Verif_magicquotes ($chaine) 
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
 
return $chaine;
} 
 
/* Initialisation du message de réponse */
$message = null;
 
 
/* Si le formulaire est envoyé */
if (isset($_POST['pseudo'])) 
{
 
    /* Récupération des variables issues du formulaire
    Teste l'existence les données post en vérifiant qu'elles existent, qu'elles sont non vides et non composées uniquement d'espaces.
    (Ce dernier point est facultatif et l'on pourrait se passer d'utiliser la fonction trim())
    En cas de succès, on applique notre fonction Verif_magicquotes pour (éventuellement) nettoyer la variable */
    $pseudo = (isset($_POST['pseudo']) && trim($_POST['pseudo']) != '')? Verif_magicquotes($_POST['pseudo']) : null;
    $pass = md5(isset($_POST['pass']) && trim($_POST['pass']) != '')? Verif_magicquotes($_POST['pass']) : null;
 
 
    /* Si $pseudo et $pass différents de null */
    if(isset($pseudo,$pass)) 
    {
         /* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
         A MODIFIER avec vos valeurs */
         $hostname = "localhost";
         $database = "jeu";
         $username = "root";
         $password = "140797";
 
         $connection = mysql_connect($hostname, $username, $password) or die(mysql_error());
 
         /* Connexion à la base */
         mysql_select_db($database, $connection);
 
         /* Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1) */
         mysql_query("SET NAMES 'utf8'");
 
         /* Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string */
         $nom = mysql_real_escape_string($pseudo);
         $password = mysql_real_escape_string(md5($pass));
 
 
         /* Requête pour récupérer les enregistrements répondant à la clause : 
         champ du pseudo et champ du mdp de la table = pseudo et mdp postés dans le formulaire*/
        $requete = "SELECT * FROM MyGameDB WHERE name = '".$nom."' AND password = '".$password."'";  
 
         /* Exécution de la requête */
         $req_exec = mysql_query($requete) or die(mysql_error());
 
         /* Création du tableau associatif du résultat */
         $resultat = mysql_fetch_assoc($req_exec); 
 
         /* Les valeurs (si elles existent) sont retournées dans le tableau $resultat;  */
         if (isset($resultat['pseudo'],$resultat['pass']))  
               {
                 /* Démarre la session et enregistre le pseudo dans la variable de session $_SESSION['login']
                 qui donne au visiteur la possibilité de visiter les pages protégées.  */
                 session_start();
                 $_SESSION['login'] = $pseudo;
 
                 /* A MODIFIER Remplacer le '#' par l'adresse de votre page de destination, sinon ce lien indique la page actuelle. */
                 $message = 'Bonjour '.htmlspecialchars($_SESSION['login']).' <a href = "#">Cliquez ici pour vous connecter</a>';
                }
                else
                {   /* Le pseudo ou le mot de passe sont incorrect */
                $message = 'Le pseudo ou le mot de passe sont incorrect';
                } 
 
    }
    else 
    {  /* au moins un des deux champs "pseudo" ou "mot de passe" n'a pas été rempli */
    $message = 'Les champs Pseudo et Mot de passe doivent être remplis.';
    }
}
?>
Sur la page d'inscription, sa fonctionne mais quand je me connecte j'ai ce message:

Le pseudo ou le mot de passe sont incorrect
Je m'en remet donc à vous..
Merci, cordialement.