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 :

Page membre


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 265
    Par défaut Page membre
    Bonjour

    J'ai installé sur mon site un espace de connexion pour que certaines pas soit limité au seul membres enregistré.
    Tout fonctionne tres bien, mais maintenant, j'aimerais que chaque membres puisse avoir une page qui lui soit propre, mais je ne vois pas comment faire..

    les données des membres sont enregistré dans une base de donnée, il doit donc etre possible de vérifier ses infos, et d'afficher une page selon l'id ou le pseudo du membre non ?

    je vous met le code de la page de connexion que vous puissiez voir comment s'articule tout ca :
    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
    <?
     
    // Redirige l'utilisateur s'il est déjà identifié
    if(isset($_COOKIE["ID_UTILISATEUR"]))
    {
         header("Location: index.php");
    }
    else
    {
     
         // Formulaire visible par défaut
         $masquer_formulaire = false;
     
         // Une fois le formulaire envoyé
         if(isset($_POST["BT_Envoyer"]))
         {
     
              // Vérification de la validité des champs
              if(!ereg("^[A-Za-z0-9_]{2,20}$", $_POST["TB_Nom_Utilisateur"]))
              {
                   $message = "Votre nom d'utilisateur doit comporter entre 2 et 20 caractères<br />\n";
                   $message .= "L'utilisation de l'underscore est autorisée";
              }
              elseif(!ereg("^[A-Za-z0-9]{4,}$", $_POST["TB_Mot_de_Passe"]))
              {
                   $message = "Votre mot de passe doit comporter au moins 4 caractères";
              }
              else
              {
     
                   // Connexion à la base de données
                   // Valeurs à modifier selon vos paramètres configuration
                   mysql_connect("localhost", "root", "");
                   mysql_select_db("user");
     
                   // Sélection de l'utilisateur concerné
                   $result = mysql_query("
                        SELECT ID_Utilisateur, Nom_Utilisateur, Mot_de_Passe, Compte_Active
                        FROM Comptes_Utilisateurs
                        WHERE Nom_Utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "'
                   ");
     
                   // Si une erreur survient
                   if(!$result)
                   {
                        $message = "Une erreur est survenue lors de la tentative de connexion";
                   }
                   else
                   {
     
                        // Si aucun utilisateur n'a été trouvé
                        if(mysql_num_rows($result) == 0)
                        {
                             $message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"] . " n'existe pas";
                        }
                        else
                        {
     
                             // Récupération des données
                             $row = mysql_fetch_array($result);
     
                             // Si le compte n'a pas été activé
                             if($row["Compte_Active"] == 0)
                             {
                                  $message = "Votre compte utilisateur n'a pas été activé";
                             }
                             else
                             {
     
                                  // Vérification du mot de passe
                                  if(md5($_POST["TB_Mot_de_Passe"]) != $row["Mot_de_Passe"])
                                  {
                                       $message = "Votre mot de passe est incorrect";
                                  }
                                  else
                                  {
     
                                       // Définition du temps d'expiration des cookies
                                       $expiration =
                                            empty($_POST["CB_Connexion_Automatique"]) ? 0 : time() + 90 * 24 * 60 * 60;
     
                                       // Création des cookies
                                       setcookie("ID_UTILISATEUR", $row["ID_Utilisateur"], $expiration, "/");
                                       setcookie("NOM_UTILISATEUR", $row["Nom_Utilisateur"], $expiration, "/");
     
                                       // Fermeture de la connexion à la base de données
                                       mysql_close();
     
                                       // Redirection de l'utilisateur
                                       header("Location: index.php");
     
                                  }
     
                             }
     
                        }
     
                   }
     
                   // Fermeture de la connexion à la base de données
                   mysql_close();
     
              }
     
         }
     
    }
     
    ?>
    si quelqu'un avait une idée, parceque l'a . .je sèche complètement.
    Merci.

  2. #2
    Membre très actif
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Par défaut
    Bonjour,

    Tu peux créer une page espacePerso.php qui par rapport a l'id de membre présent dans ton cookie, affiche des informations personnalisées.

    Dans l'ordre, ta page espacePerso.php devrait faire :
    - Verification de l'id
    - requête SQL de recup des infos nécessaires en fonction de l'id de membre
    - Affichage des données

    Je me permet de te mettre ne garde sur le fait qu'un cookie (cote client) est facilement falsifiable et tu t'exposes donc a des opérations de logins indésirables ... Je te conseillerais te compléter ta protection avec les sessions.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 265
    Par défaut
    Citation Envoyé par keaton7 Voir le message
    - Verification de l'id
    - requête SQL de recup des infos nécessaires en fonction de l'id de membre

    c'est justement la que je bloque j'ai essayé ca :
    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
    <?php
     
     
    // Redirige l'utilisateur s'il est déjà identifié
    if(isset($_COOKIE["ID_UTILISATEUR"]))
    {
         header("Location: index.php");
    }
    else
    {
     
     
     
                   // Connexion à la base de données
                   // Valeurs à modifier selon vos paramètres configuration
                   mysql_connect("localhost", "root", "");
                   mysql_select_db("user");
     
                   // Sélection de l'utilisateur concerné
                   $result = mysql_query("
                        SELECT ID_Utilisateur, Nom_Utilisateur, Mot_de_Passe, Compte_Active
                        FROM Comptes_Utilisateurs
                        WHERE Nom_Utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "'
                   ");
     
                   // Si une erreur survient
                   if(!$result)
                   {
                        $message = "Une erreur est survenue lors de la tentative de connexion";
                   }
                   else
                   {
     
                        // Si aucun utilisateur n'a été trouvé
                        if(mysql_num_rows($result) == 0)
                        {
                             $message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"] . " n'existe pas";
                        }
                        else
                        {
     
                             // Récupération des données
                             $row = mysql_fetch_array($result);
     
                             // Si le compte n'a pas été activé
                             if($row["Compte_Active"] == 0)
                             {
                                  $message = "Votre compte utilisateur n'a pas été activé";
                             }
                             else
                             {
     
                                  // Vérification du mot de passe
                                  if(md5($_POST["TB_Mot_de_Passe"]) != $row["Mot_de_Passe"])
                                  {
                                       $message = "Votre mot de passe est incorrect";
                                  }
                                  else
                                  {
     
                                       // Définition du temps d'expiration des cookies
                                       $expiration =
                                            empty($_POST["CB_Connexion_Automatique"]) ? 0 : time() + 90 * 24 * 60 * 60;
     
                                       // Création des cookies
                                       setcookie("ID_UTILISATEUR", $row["ID_Utilisateur"], $expiration, "/");
                                       setcookie("NOM_UTILISATEUR", $row["Nom_Utilisateur"], $expiration, "/");
     
                                       // Fermeture de la connexion à la base de données
                                       mysql_close();
     
                                       // Redirection de l'utilisateur
                                       header("Location: index.php");
     
                                  }
     
                             }
     
                        }
     
                   }
     
                   // Fermeture de la connexion à la base de données
                   mysql_close();
     
              }
     
         }
     
    }
     
    ?>
    mais ca ne donne absolument rien...

  4. #4
    Membre très actif
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Par défaut
    "Ça ne donne rien", c'est a dire, quelle est ton erreur ? Ton probleme ? Tu peux nous en dire plus ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 265
    Par défaut
    je n'ai aucune erreur justement...

    mais en etant logé je reviens toujours la page d'accueil (ce qui est normal si je ne suis pas identifé, mais la non...)

  6. #6
    Membre très actif
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Par défaut
    Essaie de faire un print de $expiration ?

  7. #7
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Je ne vois pas ou est le problème ?

    J'imagine que les informations personnelles en questions se trouve dans la table qui contient la liste des utilisateur, leur ID, mot de passe etc ...

    Il te fait simplement construire une page dynamiquement en PHP avec les données obtenues depuis une requête sur cette table avec comme critère principal l'ID de l'utilisateur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM Comptes_Utilisateurs WHERE ID_Utilisateur=".$_COOKIE["ID_UTILISATEUR"].";"
    Mais comme te le dit keaton7, il te faudrait utiliser une SESSION plutôt qu'un cookie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    session_start();
    $_SESSION['ID_UTILISATEUR'] = $row["ID_Utilisateur"];

Discussions similaires

  1. Url rewriting page membre
    Par Silverat dans le forum Apache
    Réponses: 0
    Dernier message: 11/03/2015, 12h02
  2. Réponses: 8
    Dernier message: 26/03/2006, 15h09
  3. Accès direct à la page impossible (membres seulement)
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/02/2006, 20h18

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