IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

"espace client" fonctionne en local, pas sur Internet [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 17
    Points : 12
    Points
    12
    Par défaut "espace client" fonctionne en local, pas sur Internet
    Bonjour à toutes et à tous,

    Je suis en train de réaliser pour les besoins de mon site Internet un système d'espace client. J'ai deux cas : je code en local pour ne pas souffrir des lenteurs de notre connexion Internet et j'exporte mon site sur notre hébergeur une fois que tout fonctionne.

    1 - En local

    L'inscription fonctionne à merveilles, (si un email ou un pseudo existe déjà, on le signale l'inscription n'a pas lieu...) le compte est enregistré avec un champs "compte_actif" initialisé à 0 puis j'envoie un mail d'activation du compte.

    Évidemment en local, le mail ne part pas mais j'ai la confirmation dans ma base de données que le compte a bien été créé, le mot de passe est bon.

    Si j'essaie de m'authentifier maintenant, j'ai un message comme quoi le compte existe mais n'est pas actif (tout est parfait pour le moment).

    Si je "triche" en activant manuellement le compte dans la base de données (je simule le clic de l'internaute sur le lien d'activation de son email)
    => TADAAAAM => l'authentification fonctionne parfaitement (aucun problème au niveau du cryptage du mot de passe en md5 etc...)

    2 - Sur Internet

    Tout fier de mon code et de ma réussite, je m'en vais la fleur au fusil m'attaquer à mon hébergeur, armé de mes pages fraichement codées et mon enthousiasme à tout rompre...

    1er choc !

    "bug" à l'inscription, si le pseudo ou l'email existent déjà dans la base de données => Pas de problème : ça crée quand même le compte

    Bref, Admettons que le destin joue en ma faveur et que je n'ai pas deux personnes au monde qui veuillent utiliser le même email ou le même pseudo (ce dont je doute malheureusement assez fort), je passe à la suite.

    L'inscription fonctionne, malgré cela, plutôt bien, le compte est bien créé sur la base de données (tout est strictement identique local / Internet), compte_actif est bien à 0 et l'email contenant le lien d'activation est parfaitement envoyé à mon futur client.

    2ème choc !!

    Si ce dit client veut s'authentifier avant d'avoir activé son compte, (on s'attend au message précédent : "compte existant mais non actif") ET BIEN NON ! ça me met "mot de passe incorrect" !!! Le MD5 semble ne pas fonctionner chez mon hébergeur !!!

    Alors, j'ai poussé un peu plus loin : J'ai créé la page qui génère un nouveau mot de passe et qui vous l'envoie par e-mail si vous avez égaré votre mot de passe. (bien sûr en local, encore une fois, ça ne marche pas). La régénération du mot de passe est effectuée comme un charme, le nouveau mot de passe prend place dans la Base de données (invérifiable puisque md5 mais le mot de passe change) et est envoyé en clair dans l'email du client.

    Je teste donc le compte client avec ce nouveau mot de passe et là... ÉCHEC à nouveau !!! (qui a dit que j'étais une buse en md5 ??? => ben c'est vrai snif.)

    Quelqu'un a-t-il déjà entendu parler d'un problème de md5 sur un hébergeur Internet avec un code testé fonctionnel en local ??

    Please help !!

    Petite nouveauté !!

    J'ai testé en virant le MD5 pensant qu'il était la cause de mon soucis... en fait pas du tout, même avec des mots de passe en clair (et pas des très compliqués), le serveur php de mon hébergeur trouve le moyen de me dire que login : max mdp : 1 ne correspond pas à l'enregistrement login : max mdp : 1 de la base de données (alors que ça fonctionne très bien en local...)

    Du coup je mise sur la nullité de mon script et je vais donc vous en faire profiter :

    Page pour créer son compte client
    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
     
    <?php
     
    // si on clique sur OK
    if (isset($_POST['nom']))
    {
    	// Si un des champs obligatoire n'est pas rempli
    	if(empty ($_POST['pseudo']) OR empty($_POST['email']) OR empty($_POST['mdp1']) AND empty($_POST['mdp2']))
    	{
    		if(empty($_POST['pseudo'])) 
    		{
    			echo("Veuillez entrer un pseudonyme / ");
    		}
    		if(empty($_POST['email']))
    		{	
    			echo("Veuillez entrer un e-mail / ");
    		}
    		if(empty($_POST['mdp1']))
    		{
    			echo("Veuillez entrer un mot de passe / ");
    		}
    		if(empty($_POST['mdp2']))
    		{
    			echo("Veuillez valider votre mot de passe / ");
    		}
    		include("fr_formulaire_inscription.php");
    	}
    	//sinon : tous les champs sont remplis, on vérifie @, tél, mdp
    	else if ((!(preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$#", $_POST['email']))) OR ($_POST['mdp1']!=$_POST['mdp2']))
    	{
    		// test e-mail valide ?
    		if (!(preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$#", $_POST['email'])))
    		{
    			echo ("Veuillez entrer une adresse e-mail valide / ");
    		} 
    		// test mdp concordants ?
    		if ($_POST['mdp1']!=$_POST['mdp2'])
    		{
    			echo ("Veuillez entrer deux fois le même mot de passe");
    		}
    		include("fr_formulaire_inscription.php");
    	}
    	// test N° Telephone valide ? Si tel rempli et si invalide
    	else if (!empty($_POST['telephone']) AND !(preg_match("#^0[0-68]([0-9]{2}){4}$#", $_POST['telephone'])))
    	{
    		echo ("Veuillez entrer un numéro de téléphone valide");
    		include("fr_formulaire_inscription.php");
    	}
    	else // le formulaire est rempli correctement
    	{	
    		//  Connexion à la base de données
    		include("fr_connexion_bdd_online.php");		
     
    		//Sécurisation :
    		$nom = mySQL_real_escape_string($_POST['nom']);
    		$prenom = mySQL_real_escape_string($_POST['prenom']);
    		$adresse = mySQL_real_escape_string($_POST['adresse']);
    		$code_postal = mySQL_real_escape_string($_POST['code_postal']);
    		$ville = mySQL_real_escape_string($_POST['ville']);
    		$pays = mySQL_real_escape_string($_POST['pays']);
    		$telephone = mySQL_real_escape_string($_POST['telephone']);
    		$pseudo = mySQL_real_escape_string($_POST['pseudo']);
    		$email = mySQL_real_escape_string($_POST['email']);
    		$mdp1 = mySQL_real_escape_string($_POST['mdp1']);
    		$mdp2 = mySQL_real_escape_string($_POST['mdp2']);
     
     
    		//Requête : on vérifie que l'email ou le pseudo n'existent pas.
    		$requete1 = mySQL_query("SELECT pseudo,email FROM Client WHERE email='".$email."' OR pseudo='".$pseudo."'");
    		$donnees1 = mysql_fetch_array($requete1);
    		$requete2 = mySQL_query("SELECT email FROM Client WHERE email='".$email."'");
    		$donnees2 = mysql_fetch_array($requete2);
    		$requete3 = mySQL_query("SELECT pseudo FROM Client WHERE pseudo='".$pseudo."'");
    		$donnees3 = mysql_fetch_array($requete3);
     
    		/*---------------------------------------------------------------------------------*/
    		// si pas de correspondance le pseudo et l'email sont dispos => On enregistre !
    		if ($donnees1 == null ) 
    		{
     
    			// Génération de la clef d'activation
    			$caracteres = array("a", "b", "c", "d", "e", "f", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
    			$caracteres_aleatoires = array_rand($caracteres, 8);
    			$clef_activation = "";
     
    			foreach($caracteres_aleatoires as $i)
    			{
    				$clef_activation .= $caracteres[$i];
    			}
     
    			$nom = htmlentities(addslashes($_POST['nom']));
    			$prenom = htmlentities(addslashes($_POST['prenom']));
    			$adresse = htmlentities(addslashes($_POST['adresse']));
    			$code_postal = htmlentities(addslashes($_POST['code_postal']));
    			$ville = htmlentities(addslashes($_POST['ville']));
    			$pays = htmlentities(addslashes($_POST['pays']));
    			$telephone = htmlentities(addslashes($_POST['telephone']));
    			$pseudo = htmlentities(addslashes($_POST['pseudo']));
    			$email = htmlentities(addslashes($_POST['email']));
    			$mdp1 = htmlentities(addslashes($_POST['mdp1']));
    			$mdp2 = htmlentities(addslashes($_POST['mdp2']));
     
    			// Création du compte utilisateur
    			$req="INSERT INTO 
    			client
    			(
    				idclient
    				, nom
    				, prenom
    				, adresse
    				, code_postal
    				, ville
    				, pays
    				, telephone
    				, mdp1
    				, pseudo
    				, email
    				, date_inscription
    				, code_activation
    			)
    			VALUES
    			(
    				null
    				, '" . $nom . "'
    				, '" . $prenom . "'
    				, '" . $adresse . "'
    				, '" . $code_postal . "'
    				, '" . $ville . "'
    				, '" . $pays . "'
    				, '" . $telephone . "'
    				, '" . /*md5($mdp1)*/ $mdp1. "'
    				, '" . $pseudo . "'
    				, '" . $email . "'
    				, '" . time() . "'
    				, '" . $clef_activation . "'
    			) 
    			";
     
    			//Envoi de la requête = enregistrement du compte	
    			$resultat=mysql_query($req);
     
    			// Si une erreur survient
    			 if(!$resultat)
    			 {
    				  echo ("Erreur d'accès à la base de données lors de la création du compte utilisateur<br>\n");
    				  echo ("Veuillez contacter l'administrateur afin qu'il créé votre compte votre compte");
    			 }
    			 //Sinon, le compte est enregistré
    			 else
    			 {
    				// Envoi du mail d'activation
    				$headers ='From: "inscription@secretsparis.fr"<inscription@secretsparis.fr>'."\n";
    				$headers .='Reply-To: ne-pas-repondre@secretsparis.fr'."\n";
    				$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
    				$headers .='Content-Transfer-Encoding: 8bit';
    				$sujet = "Activation de votre compte Seecret's";
    				$message = "Pour valider votre inscription, merci de cliquer sur le lien suivant :\n";
    				$message .= "<a href=\"http://" . $_SERVER["SERVER_NAME"];
    				$message .= "/fr_activer_compte_utilisateur.php?id=" . mysql_insert_id();
    				$message .= "&clef=" . $clef_activation."\"> ACTIVEZ VOTRE COMPTE </a>";
     
    				// Si une erreur survient
    				if(!@mail($_POST["email"], $sujet, $message, $headers))
    				{
    					echo ("Une erreur est survenue lors de l'envoi du mail d'activation<br />\n");
    					echo ("Veuillez contacter l'administrateur afin d'activer votre compte");
    				}
    				else
    				{
    					// Message de confirmation
    					echo ("Votre compte utilisateur a correctement été créé<br />\n");
    					echo ("Un email vient de vous être envoyé afin de l'activer");
    				}
    			}
    		}
     
    		/*---------------------------------------------------------------------------------*/
    		// sinon, pseudo ou email existant / 
    		else 
    		{
    			if ($donnees2 == null ) // si email libre => pb sur le pseudo
    			{
    				echo ("Ce pseudonyme est déjà utilisé, veuillez en choisir un autre / ");
    			}
    			if ($donnees3 == null ) // si pseudo libre => email déjà pris
    			{
    				echo ("Cet e-mail est déjà utilisé, veuillez en choisir un autre");
    			}
    			include("fr_formulaire_inscription.php");
    		}
     
    	}
    }
    else // On vient du lien pour créer un compte
    { 
    	include("fr_formulaire_inscription.php");
    }
     
    ?>
    Page pour s'authentifier
    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
    87
     
    <?php
     
    /*---------------------------------------------------------------------------------*/
    // Si la session existe (au moins 2eme visite)
     
    if (isset($_SESSION['login']) AND isset($_SESSION['mdp'])) 
    {
    	echo "<br>Bonjour" . " " . $_SESSION['pseudo'];
    ?>
    	<br><a href="fr_mon_compte.php"> Mon compte </a><br>
    	<a href="fr_deconnexion.php">Se déconnecter.</a>
    <?php
    }
    /*---------------------------------------------------------------------------------*/
    // pas de session, on a cliqué sur OK mais un ou deux champs sont vides 
    else if ((isset ($_POST['login']) AND isset($_POST['mdp'])) AND (empty($_POST['login']) OR empty($_POST['mdp'])))
    {
    	echo "<br>Nom d'utilisateur et / ou mot de passe manquant <br>";
    	include("fr_login.php");		
    }
     
    /*---------------------------------------------------------------------------------*/
    // pas de session, on a cliqué sur OK et les deux champs sont remplis
    else if ((isset ($_POST['login']) AND ($_POST['mdp'])) AND (!empty($_POST['login']) AND !empty($_POST['mdp']))) 
    {
    	//  Connexion à la base de données 
    	include("fr_connexion_bdd_online.php");
     
    	//Sécurisation :
    	$login = mySQL_real_escape_string($_POST['login']);
    	$mdp = mySQL_real_escape_string($_POST['mdp']);
     
    	//Requête : récupération et vérification de l'authentification
    	$requete=mySQL_query
    	("SELECT 
    		pseudo
    		, email
    		, mdp1
    		, compte_actif
    	FROM Client 
    	WHERE email='".$login."' 
    	OR pseudo='".$login."' 
    	AND mdp1='"./*md5($_POST['mdp'])*/$_POST['mdp']."'
    	");
     
    	$donnees = mysql_fetch_array($requete);
     
    	/*---------------------------------------------------------------------------------*/
    	// si pas de correspondance
    	if ($donnees == null ) 
    	{
    		echo "<br>Nom d'utilisateur et / ou mot de passe incorrect <br>";
    		include("fr_login.php");		
    	} 
     
    	/*---------------------------------------------------------------------------------*/
    	// sinon correspondance trouvé, compte actif ? 
    	else 
    	{
    		if($donnees['compte_actif']==0)
    		{
    			echo("Compte existant mais inactif, veuillez consulter vos e-mails.");
    			include("fr_login.php");
    		}
    		// auth OK, on souhaite la bienvenue, le "panneau client" s'affiche
    		else
    		{
    			$_SESSION['pseudo']=$donnees['pseudo'];
    			$_SESSION['login']=$donnees['email'];			
    			$_SESSION['mdp']=$donnees['mdp1'];
    			echo "<br>Bonjour " . " " . $_SESSION['pseudo'];
    ?>
    			<br><a href="fr_mon_compte.php"> Mon compte </a><br>
    			<a href="fr_deconnexion.php">Se déconnecter.</a>
    <?php
    		}
    	}
    }
     
    /*---------------------------------------------------------------------------------*/
    // première page, première visite, pas de session, on n'a pas cliqué sur OK, on affiche la page login
    else 
    {
    	include("fr_login.php");
    }
    ?>
    Enfin Page pour activer le compte
    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
     
    <?php
      // Vérifie que de bonnes valeurs sont passées en paramètres
        if(!ereg("^[0-9]+$", $_GET["id"]) || !ereg("^[a-f0-9]{8}$", strtolower($_GET["clef"])))
        {
            header("Location: index.php");
        }
        else
        {
     
            // Connexion à la base de données
            include("fr_connexion_bdd_online.php");
     
            // Sélection de l'utilisateur concerné
            $result = mysql_query("
                SELECT idclient
                    , compte_actif
                    , code_activation
                FROM client
                WHERE idclient = '" . $_GET["id"] . "'
                AND code_activation = '" . strtolower($_GET["clef"]) . "'
            ");
     
            // Si une erreur survient
            if(!$result)
            {
                echo("Une erreur est survenue lors de l'activation de votre compte utilisateur");
            }
            else
            {
     
                // Si aucun enregistrement n'est trouvé
                if(mysql_num_rows($result) == 0)
                {
                    header("Location: index.php");
                }
                else
                {
     
                    // Récupération du tableau de données retourné
                    $row = mysql_fetch_array($result);
     
                    // Vérification que le compte ne soit pas déjà activé
                    if($row["Compte_Actif"] != 0)
                    {
                        echo("Votre compte utilisateur a déjà été activé");
                    }
                    else
                    {
     
                        // Activation du compte utilisateur
                        $result = mysql_query
    						("
    						UPDATE client
    						SET Compte_Actif = '1'
                            WHERE idclient = '" . $_GET["id"] . "'
                            AND code_activation = '" . strtolower($_GET["clef"]) . "'
                            ");
     
                        // Si une erreur survient
                        if(!$result)
                        {
                           echo("Une erreur est survenue lors de l'activation de votre compte utilisateur");
    					}
                        else
    					{
    						echo("Votre compte utilisateur a correctement été activé \n");
                        }
                    }    
                }   
            }
    	}
    ?>
    Voilà, je pense que vous avez toutes les armes en main pour me fouetter, enfin m'aider je veux dire.

    En espérant ne pas avoir fait trop de bourdes, de suis plutôt débutant dans cette discipline.

    D'avance merci mesdemoiselles mesdames et messieurs. (slurrrrrrrrrp )

  2. #2
    Membre actif Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Points : 262
    Points
    262
    Par défaut
    ce n'est pas plutôt des & et des | pour les AND et OR ? (ceci ne résoudra probablement pas le problème mais si cela fonctionne, c'est une question de curiosité plus ^^)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    A priori, ce sont en effet mes tests qui sont défaillants, je vais essayer de changer ces vilains mots de langue humaine en langage machine de ce pas.

    Merci de la proposition.

    ...Plus tard...

    Nein ! ça ne change pas mon problème...

    merci d'avoir essayé.

    Edit :

    Vous pensez que ça pourrait venir d'une différence entre la version PHP de mon serveur local (j'utilise php 5.2.8) et celle de mon hébergeur (php 5.0) ?

    Re-Edit : J'ai amélioré mon code sur la page d'authentification, j'ai ajouté des tests qui me permettent de savoir exactement où ça coince.

    En l'occurrence, tout fonctionne parfaitement en local, pour changer, et sur le net, voici ce que j'obtiens :

    "Ce compte n'existe pas, entrez un login valide" (c'est le message que j'affiche si la requête qui reconnait le login revient vide

    => la requête revient vide ???? pourtant j'ai bel et bien un max dans ma base de données, pourquoi le max qui essaie de se connecter n'est-il pas reconnu ?

    Le code si ça peut vous aider à m'aider

    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
     
    <?php
     
    /*---------------------------------------------------------------------------------*/
    // Si la session existe (au moins 2eme visite)
     
    if (isset($_SESSION['login']) && isset($_SESSION['mdp'])) 
    {
    	echo "<br>Bonjour" . " " . $_SESSION['pseudo'];
    ?>
    	<br><a href="fr_mon_compte.php"> Mon compte </a><br>
    	<a href="fr_deconnexion.php">Se déconnecter.</a>
    <?php
    }
    /*----------------// MORCEAU DE CODE AMELIORE : ------------------------------------*/
    // MORCEAU DE CODE AMELIORE : 
    // pas de session, on a cliqué sur OK mais un ou deux champs sont vides 
    else if ((isset ($_POST['login']) && isset($_POST['mdp'])) && (empty($_POST['login']) || empty($_POST['mdp'])))
    {
    	if(empty($_POST['login']))
    	{
    		echo "Nom d'utilisateur manquant <br>";	
    	}
    	if (empty($_POST['mdp']))
    	{
    		echo "Mot de passe manquant <br>";
    	}
    	include("fr_login.php");
    }
     
    /*---------------------------------------------------------------------------------*/
    // pas de session, on a cliqué sur OK et les deux champs sont remplis
    else if ((isset ($_POST['login']) && ($_POST['mdp'])) && (!empty($_POST['login']) && !empty($_POST['mdp']))) 
    {
    	//  Connexion à la base de données 
    	include("fr_connexion_bdd.php");
     
    	//Sécurisation :
    	$login = mySQL_real_escape_string($_POST['login']);
    	$mdp = mySQL_real_escape_string($_POST['mdp']);
     
    	//Requête : récupération et vérification de l'authentification
    	$requete_auth=mySQL_query
    	("SELECT 
    		pseudo
    		, email
    		, mdp1
    		, compte_actif
    	FROM Client 
    	WHERE email='".$login."' 
    	OR pseudo='".$login."' 
    	AND mdp1='".md5($_POST['mdp'])."'
    	");
     
    	$donnees_auth = mysql_fetch_array($requete_auth);
     
    	/*------------------------------------------------------------------------*/
    	// si pas de correspondance
    	if ($donnees_auth == null ) 
    	{
    		$requete_compte_existe=mySQL_query
    		(
    		"SELECT 
    		pseudo
    		, email
    		, mdp1
    		, compte_actif
    		FROM Client 
    		WHERE email='".$login."' 
    		OR pseudo='".$login."' 
    		");
    		/*----------------// MORCEAU DE CODE AMELIORE : ------------------------------------*/
    		$donnees_compte_existe = mysql_fetch_array($requete_compte_existe);
    		if ($donnees_compte_existe == null ) // si ce login n'existe pas
    		{
    			echo "Ce compte n'existe pas, entrez un login valide";
    			include("fr_login.php");
    		}	
    		else // pas de correspondance, mais le login existe => mdp inccorect !
    		{
    			echo "Le mot de passe est incorrect";
    			include("fr_login.php");
    		}
    	} 
     
    	/*---------------------------------------------------------------------------------*/
    	// sinon correspondance trouvé, compte actif ? 
    	else 
    	{
    		if($donnees_auth['compte_actif']==0)
    		{
    			echo("Compte existant mais inactif, veuillez consulter vos e-mails.");
    			include("fr_login.php");
    		}
    		// auth OK, on souhaite la bienvenue, le "panneau client" s'affiche
    		else
    		{
    			$_SESSION['pseudo']=$donnees_auth['pseudo'];
    			$_SESSION['login']=$donnees_auth['email'];			
    			$_SESSION['mdp']=$donnees_auth['mdp1'];
    			echo "<br>Bonjour " . " " . $_SESSION['pseudo'];
    ?>
    			<br><a href="fr_mon_compte.php"> Mon compte </a><br>
    			<a href="fr_deconnexion.php">Se déconnecter.</a>
    <?php
    		}
    	}
    }
     
    /*---------------------------------------------------------------------------------*/
    // première page, première visite, pas de session, on n'a pas cliqué sur OK, on affiche la page login
    else 
    {
    	include("fr_login.php");
    }
    ?>
    D'avance merci.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/03/2011, 12h37
  2. [FPDF] Marche en local pas sur Internet
    Par winnie_the_pooh dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 26/02/2008, 19h26
  3. filezilla server, fonctionne en local pas à distance
    Par debdev dans le forum Administration
    Réponses: 18
    Dernier message: 25/04/2007, 23h58
  4. Réponses: 4
    Dernier message: 15/02/2006, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo