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

Langage PHP Discussion :

Système de comptes


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 44
    Par défaut Système de comptes
    Salut!
    En fait, je cherche à réaliser un système de comptes d'utilisateurs pour mon site, et ca marche assez bien.

    J'ai une BDD avec le pseudo et le mot de passe de chaques utilisateurs, ainsi que diverses autres informations. Sur chaque page, il a un include pour vérifier que l'utilisateur a sur son PC des cookies avec un mot de passe et un nom de compte correct.
    Il y a un second include avec le haut de la page, le titre, les boutons, et une zone pour rentrer le nom de l'utilisateur et son MDP (s'il est pas encore connecté, et que la variable pour le vérifier $compteok est donc, par défaut égal à 0) et l'envoie a une page qui crée a partir de ces infos deux cookies, un avec le MDP et un avec le nom de compte.

    Ensuite cette page a les même include que les autres, elle commence donc par poser les cookies puis après vérifie donc dans un include que le mot de passe et le nom de compte sont correct, alors $compteok = 1 et dans l'include suivant, si $compteok = 1 il affiche "Bonjour Nomducompte" a la place des champs pour se connecter.

    Le problème est le suivant : quand on rentre les informations pour se connecter, la partie devant dire "Bonjour X" a la place des champs de connexion ne change pas et il faut recharger la page pour que le cadre change.

    A part cela la page trouve correctement le nom de la personne qui se connecte, et vérifie correctement son MDP, partie que je pensais être la plus compliquée de mon script, mais finalement mon problème actuel est, pour moi, bien plus difficile à résoudre

    Je précise à chaques fois les includes parce qu'à un moment il m'avait sembler comprendre que mon problème venait de là mais je suis pas sur.
    S'il manque des infos ou que vous voulez voir du code, demandez moi.
    Merci encore, et désolez du manque de clarté que je dois avoir!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu dois avoir un problème logique dans ton enchainement d'action à ce niveau la :

    Ensuite cette page a les même include que les autres, elle commence donc par poser les cookies puis après vérifie donc dans un include que le mot de passe et le nom de compte sont correct, alors $compteok = 1 et dans l'include suivant, si $compteok = 1 il affiche "Bonjour Nomducompte"
    Si les choses etaient comme tu le decris, ca fonctionnerait.
    Je suppose que dans les variables que tu test pour afficher ou non "bonjour", il y en a qui sont declaré apres l'affichage.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 44
    Par défaut
    Bonjour!
    C'est ce qu'il me semblait, mais pourtant je vois pas d'où vient le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    if (isset($_POST['pseudo']) AND isset($_POST['mdp']))
    {
    $timestamp_expire = time() + 7*24*3600; // Le cookie expirera dans une semaine
    setcookie('pseudo', $_POST['pseudo'], $timestamp_expire); // On écrit le pseudo
    setcookie('mdp', $_POST['mdp'], $timestamp_expire); // On écrit le mdp
    include("initphp.php");?>
    Là j'ouvre mon HTML et m'occupe de mon HEAD. Ensuite :
    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
    <body>
    <div id="header">
    [...] //Les images du menu du haut de la page
    <?php
    			if ($compteok == 1)
    			{
    			echo 'Bonjour!<br/>';	
    			}
    			else
    			{
    			echo 'Désolé. Je ne vous reconnais pas. Veuillez répétez ces infos!<br/>';
    			echo '<form action="login.php" method="post"><input type="text" name="pseudo" size="10" maxlength="30" value="Nom"/><input type="password" name="mdp" size="15" maxlength="30" value="Mot de passe"/><input type="submit" value="C\'est moi!" size="15" /></form>';
    			}
    			 ?>
    </div>
    [...]
    Et biensur le initphp.php :
    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
    <?php
    	$compteok = 0; // Variable de vérification du pseudo / mdp
     
    	if (isset($_COOKIE['pseudo']) AND isset($_COOKIE['mdp'])) // s'il y a les cookies mis à la connexion
    {	
    	mysql_connect("***", "***", "***"); // connexion a MySQL
    	mysql_select_db("***");
    	$listecomptes = mysql_query("SELECT * FROM compte ORDER BY ID"); // récupérer les infos des comptes enregistrés dans la BDD
     
    	while ($testcompte = mysql_fetch_array($listecomptes) )
    {
    		if ($_COOKIE['pseudo'] == $testcompte['Pseudo'] AND $_COOKIE['mdp'] == $testcompte['MDP']) // si le pseudo et le mot de passe corresponde dans la BDD
    	{
    			$compteok++; // Le compte est ok, compteok = 1
     
    			$pseudo = $testcompte['Pseudo'];
     
    	}
    }
     
    	mysql_close(); // Déconnexion de MySQL
    }
    ?>
    Merci.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pourquoi tu lis tous les comptes en les classant par ID pour verifier le login/pass ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 44
    Par défaut
    Euh... bonne question, je pourrai utiliser un WHERE Pseudo=$_COOKIE['pseudo'] c'est ça? Mais qu'est ce que ca changerait finalement? Merci encore de m'aider.

  6. #6
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    Citation Envoyé par lv3895 Voir le message
    Euh... bonne question, je pourrai utiliser un WHERE Pseudo=$_COOKIE['pseudo'] c'est ça? Mais qu'est ce que ca changerait finalement? Merci encore de m'aider.
    le résultat final sera le même puisque tu aura ton authentification de faite cependant la méthode utilisé serai un poil plus rapide puisque ta clause de validité va limité d'embé le nombre de résultats ce qui pour des tables assez importante peux éviter de faire ramer un serveur pendant x min.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

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

Discussions similaires

  1. Comment créer un nouveau système de compte
    Par Oberown dans le forum Android
    Réponses: 1
    Dernier message: 10/06/2011, 11h21
  2. Réponses: 4
    Dernier message: 11/09/2010, 15h40
  3. Système de compte
    Par Syrmonsieur dans le forum Access
    Réponses: 4
    Dernier message: 24/12/2006, 00h55

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