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 :

Aide création espace membre


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Aide création espace membre
    Bonjour je ne sais pas trop où poster ce message et je m'en excuse d'avance.
    Cela fait plusieurs jours que je tourne en rond.
    J'essaie de créer un espace membre pour mon futur site et je n'y arrive pas.
    Le site n'est pas encore sur le net.
    Je voudrais savoir comment procéder.
    J'ai utiliser plusieurs tuto et à chaque fois un problème se pose.
    J'ai le texte php qui s'affiche et en dessous les cases correspondant à la sélection des données demandées.
    J'ai pourtant bien créé mes base dans phpmyadmin
    Même en travaillant sous apache en http le problème s'exécute aussi.
    J'espère que quelqu'un pourra m'aider je sais que c'est très énervant les espaces membres surtout que certains réclament de l'argent pour la conception.
    Images attachées Images attachées  

  2. #2
    Membre régulier Avatar de guigouz
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 84
    Points : 102
    Points
    102
    Par défaut
    Ce post devrait se trouver dans le forum PHP...

    Bref, tu devrais commencer pour nous donner ton code (ou une partie) afin que l'on puisse regarder et te dire ce qui ne vas pas. Enfin, sache que tu ne peux pas utiliser PHP sans apache (PHP ne fonctionne pas comme du HTML !).
    Donc commence par poser un fichier 'plop.php' à la base de ton serveur Web avec ça dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo 'plop'; 
    ?>
    Si marche, rajoute progressivement ton code pour l'espace membre et débeugue !

    Bonne continuation
    Guigouz

  3. #3
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour, voici la méthode que j'utilise pour créer une partie membre:

    Tout d'abord je crée une table 'Users' avec comme champs : id_user, nom,prénom,....,login,mot_passe.

    Puis dans la page d'authentification, je vérifie que l'utilisateur entre bien son bon identifiant et mot de passe. Une fois vérifié, je créer une variable $_SESSION['user'] dans laquelle j'affecte le login de l'utilisateur.

    Enfin à chaque page protégé, je démarre la page par session_start() et un test sur la présence ou non de la variable $_SESSION['user'].

    Si la variable est présente, tu affiches le contenu restreint sinon tu affiches un message du type : "Vous devez être identifié pour accéder à cette page".


    En espérant t'avoir aidé.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par guigouz Voir le message
    Ce post devrait se trouver dans le forum PHP...

    Bref, tu devrais commencer pour nous donner ton code (ou une partie) afin que l'on puisse regarder et te dire ce qui ne vas pas. Enfin, sache que tu ne peux pas utiliser PHP sans apache (PHP ne fonctionne pas comme du HTML !).
    Donc commence par poser un fichier 'plop.php' à la base de ton serveur Web avec ça dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo 'plop'; 
    ?>
    Si marche, rajoute progressivement ton code pour l'espace membre et débeugue !

    Bonne continuation
    Guigouz


    Merci de m'aider.
    Oui c'est ce que l'on m'a dit concernant apache.
    plop.php à la base de mon serveur ce qui veut dire où exactement ??
    Désolé je suis un peu débutant dans ce milieu.
    Mon code pour l'espace membre je l'ajoute à la suite dans le plop ou pas du tout .

    Citation Envoyé par ZeMarine Voir le message
    Bonjour, voici la méthode que j'utilise pour créer une partie membre:

    Tout d'abord je crée une table 'Users' avec comme champs : id_user, nom,prénom,....,login,mot_passe.

    Puis dans la page d'authentification, je vérifie que l'utilisateur entre bien son bon identifiant et mot de passe. Une fois vérifié, je créer une variable $_SESSION['user'] dans laquelle j'affecte le login de l'utilisateur.

    Enfin à chaque page protégé, je démarre la page par session_start() et un test sur la présence ou non de la variable $_SESSION['user'].

    Si la variable est présente, tu affiches le contenu restreint sinon tu affiches un message du type : "Vous devez être identifié pour accéder à cette page".


    En espérant t'avoir aidé.
    Merci pour ton aide.
    Je vois ce que tu veux dire j'avais vu ce tuto sur un site.
    Mais là je n'arrive pas à comprendre pourquoi il ne veut pas exécuter le php


    Voici le codage pour la création du compte utilisateur
    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
    <?php
     
    // 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_]{4,20}$", $_POST["TB_Nom_Utilisateur"]))
              {
                   $message = "Votre nom d'utilisateur doit comporter entre 4 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";
              }
              elseif($_POST["TB_Mot_de_Passe"] != $_POST["TB_Confirmation_Mot_de_Passe"])
              {
                   $message = "Votre mot de passe n'a pas été correctement confirmé";
              }
              elseif(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$",
                   $_POST["TB_Adresse_Email"]))
              {
                   $message = "Votre adresse e-mail n'est pas valide";
              }
              else
              {
     
                   // Connexion à la base de données
                   // Valeurs à modifier selon vos paramètres configuration
                   mysql_connect("localhost", "root", "");
                   mysql_select_db("asp-php");
     
                   // Vérification de l'unicité du nom d'utilisateur et de l'adresse e-mail
                   $result = mysql_query("
                        SELECT Nom_Utilisateur
                             , Adresse_Email
                        FROM Comptes_Utilisateurs
                        WHERE Nom_Utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "'
                        OR Adresse_Email = '" . $_POST["TB_Adresse_Email"] . "'
                   ");
     
                   // Si une erreur survient
                   if(!$result)
                   {
                        $message = "Une erreur est survenue lors de la création de votre compte utilisateur";
                   }
                   else
                   {
     
                        // Si un enregistrement est trouvé
                        if(mysql_num_rows($result) > 0)
                        {
     
                             while($row = mysql_fetch_array($result))
                             {
     
                                  if($_POST["TB_Nom_Utilisateur"] == $row["Nom_Utilisateur"])
                                  {
                                       $message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"];
                                       $message .= "est déjà utilisé";
                                  }
                                  elseif($_POST["TB_Adresse_Email"] == $row["Adresse_Email"])
                                  {
                                       $message = "L'adresse e-mail " . $_POST["TB_Adresse_Email"];
                                       $message .= "est déjà utilisée";
                                  }
     
                             }
     
                        }
                        else
                        {
     
                             // 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];
                             }
     
                             // Création du compte utilisateur
                             $result = mysql_query("
                                  INSERT INTO Comptes_Utilisateurs(
                                       Nom_Utilisateur
                                       , Mot_de_Passe
                                       , Adresse_Email
                                       , Date_Inscription
                                       , Clef_Activation
                                  )
                                  VALUES(
                                       '" . $_POST["TB_Nom_Utilisateur"] . "'
                                       , '" . md5($_POST["TB_Mot_de_Passe"]) . "'
                                       , '" . $_POST["TB_Adresse_Email"] . "'
                                       , '" . time() . "'
                                       , '" . $clef_activation . "'
                                  )
                             ");
     
                             // Si une erreur survient
                             if(!$result)
                             {
                                  $message = "Une erreur est survenue lors de la création de votre compte utilisateur";
                             }
                             else
                             {
     
                                  // Envoi du mail d'activation
                                  $sujet = "Activation de votre compte utilisateur";
     
                                  $message = "Pour valider votre inscription, merci de cliquer sur le lien suivant :\n";
                                  $message .= "http://" . $_SERVER["SERVER_NAME"];
                                  $message .= "/activer-compte-utilisateur.php?id=" . mysql_insert_id();
                                  $message .= "&clef=" . $clef_activation;
     
                                  // Si une erreur survient
                                  if(!@mail($_POST["TB_Adresse_Email"], $sujet, $message))
                                  {
                                       $message = "Une erreur est survenue lors de l'envoi du mail d'activation<br />\n";
                                       $message .= "Veuillez contacter l'administrateur afin d'activer votre compte";
                                  }
                                  else
                                  {
     
                                       // Message de confirmation
                                       $message = "Votre compte utilisateur a correctement été créer<br />\n";
                                       $message .= "Un email vient de vous être envoyer afin de l'activer";
     
                                       // On masque le formulaire
                                       $masquer_formulaire = true;
     
                                  }
     
                             }
     
                        }
     
                   }
     
              }
     
              // Fermeture de la connexion à la base de données
              mysql_close();
     
         }
     
    }
     
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
    <head>
         <title>[PHP] Créer un espace membre</title>
         <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
     
    <body>
    <? if(isset($message)) { ?>
    <p><?= $message; ?></p>
    <? } if($masquer_formulaire != true) { ?>
    <form action="http://<?= $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
         <p>
              Nom d'utilisateur : <input type="text" name="TB_Nom_Utilisateur" />
         </p>
         <p>
              Mot de passe : <input type="password" name="TB_Mot_de_Passe" />
         </p>
         <p>
              Confirmation du mot de passe : <input type="password" name="TB_Confirmation_Mot_de_Passe" />
         </p>
         <p>
              Adresse e-mail : <input type="text" name="TB_Adresse_Email" />
         </p>
         <p>
              <input type="submit" name="BT_Envoyer" value="Envoyer" />
         </p>
    </form>
    <? } ?>
    </body>
    </html>

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut
    si ça peut t'aider; voilà ma page espace membre, accès restreint
    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
    <?php
    if (!isset($_SESSION)) {
      session_start();
    }
    $MM_authorizedUsers = "";
    $MM_donotCheckaccess = "true";
     
    // *** Restrict Access To Page: Grant or deny access to this page
    function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) { 
      // For security, start by assuming the visitor is NOT authorized. 
      $isValid = False; 
     
      // When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
      // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
      if (!empty($UserName)) { 
        // Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
        // Parse the strings into arrays. 
        $arrUsers = Explode(",", $strUsers); 
        $arrGroups = Explode(",", $strGroups); 
        if (in_array($UserName, $arrUsers)) { 
          $isValid = true; 
        } 
        // Or, you may restrict access to only certain users based on their username. 
        if (in_array($UserGroup, $arrGroups)) { 
          $isValid = true; 
        } 
        if (($strUsers == "") && true) { 
          $isValid = true; 
        } 
      } 
      return $isValid; 
    }
     
    $MM_restrictGoTo = "acces-errone.php";
    if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
      $MM_qsChar = "?";
      $MM_referrer = $_SERVER['PHP_SELF'];
      if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
      if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0) 
      $MM_referrer .= "?" . $QUERY_STRING;
      $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
      header("Location: ". $MM_restrictGoTo); 
      exit;
    }
     
    function getUserInfo() { 
    	global $db;
     
    	$sql = $db->prepare('SELECT u.id, u.active, u.date, u.last_modified, u.username 
    					
    				FROM site_session s
    				INNER JOIN site_user u
    					ON s.sid = :sid
    					AND s.userid = u.id ');
     
    	$sql->execute( array(':sid' => session_id()) );
     
    	$userdata = $sql->fetch(PDO::FETCH_ASSOC);
     
    	if (empty($userdata)) {
    		$userdata = FALSE;
    	}
     
    	return $userdata;
    }
     
    function dbClean() {
    	global $db;
     
    	$limit = date('Y-m-d H-i-s', mktime(0, 0, 0, date('m'), date('d') - 2, date('Y')));
     
    	$cleanSQL = $db->prepare('DELETE FROM '.PREFIX_DB_INSCRIPTION.'session 
    					WHERE last_modified < :limit');
    	$cleanSQL->execute( array(':limit' => $limit) );
    }
     
    function closeSession() {
    	global $db;
     
    	$deleteSQL = $db->prepare('DELETE FROM '.PREFIX_DB_INSCRIPTION.'session 
    					WHERE sid = :sid');
    	$deleteSQL->execute( array(':sid' => session_id()) );
     
    	echo '<meta http-equiv="Refresh" content="0;'.$_SERVER['PHP_SELF'].'">';
    }
     
    function openSession($userid) {
    	global $db;
     
    	// On supprime la session en cours
    	$deleteSQL = $db->prepare('DELETE FROM '.PREFIX_DB_INSCRIPTION.'session 
    					WHERE userid = :userid');
    	$deleteSQL->execute(array(':userid' => $userid));
     
    	// Re-génération du sid
    	session_regenerate_id();
     
    	// On insère le nouvel id de session dans la db
    	$insertSQL = $db->prepare('INSERT INTO '.PREFIX_DB_INSCRIPTION.'session (sid, userid, ip, browser)
    				     VALUES (:sid, :userid, :ip, :browser)');
    	$insertSQL->execute(array(':sid' => session_id(),
    				  ':userid' => $userid,
    				  ':ip' => getIP(),
    				  ':browser' => getBrowser(),
    	));
     
    	return TRUE;
    }
     
    ?>
    avec le bonus bonjour au nom de l'utilisateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo "Bonjour ",    $_SESSION['MM_Username']; ?> !
    je ne sais si ce code est totalement correct, mais en tout cas, il fonctionne
    quand je clique sur mon espace membre dans wamp, ça m'ouvre la page d'accès pour mettre mon pseudo et mot de passe

  6. #6
    Membre régulier Avatar de guigouz
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 84
    Points : 102
    Points
    102
    Par défaut
    Quand j'ai dis 'base', je voulais dire 'racine'.
    La racine de ton serveur Web se trouve généralement dans le répertoire /var/www sous linux (ou éventuellement dans /home/user/public_html).
    Sous Windows ça va surtout dépendre si tu utilises Wamp, EasyPhp ou autre...

    Qu'en est-il ?

    Ensuite quand je parlais du fichier 'plop.php' c'est une manière de parler, tu pourrais l'appeler 'mon_fichier.php' c'est pareil !

    Quand tu auras réussi à trouver le répertoire racine de ton serveur et réussi à afficher ton 'echo plop' correctement, on t'en dira plus sur la suite des opérations... pas la peine de mettre la charrue avant les boeufs.

    Bonne chance !
    Guigouz

Discussions similaires

  1. [Blog] Création avec espace membre
    Par danydan01 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 13/05/2011, 11h25
  2. [MySQL] création d'un espace membre
    Par zup17 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/02/2011, 14h20
  3. Espace Membre (besoin d'aide)
    Par hoodvy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/04/2010, 12h58
  4. Création d'un espace membre
    Par zoneech dans le forum Langage
    Réponses: 16
    Dernier message: 24/12/2008, 20h07
  5. Réponses: 4
    Dernier message: 20/02/2007, 04h03

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