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 :

Exclure du contenu en session


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2017
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2017
    Messages : 80
    Par défaut Exclure du contenu en session
    Bonjour,

    Je ne pense pas que ça soit bien compliqué, mais après de multiples essais... impossible de trouver la solution.

    En gros, j'ai un espace membre, avec un session['admin'] et une session['membre'], si je suis connecté entant qu'admin, alors je peux avoir accès au formulaire de commentaires de ma page, si je suis connecté entant que membre, exactement la même chose, et si je ne suis n'y un membre, ni un admin, alors le formulaire de commentaires est caché, et affiche un message pour aller se connecter ou s'inscrire.

    Ca marche niquel si je suis un admin, le problème c'est que je n'arrive pas à mettre la même chose mais pour le membre.... je ne sais si je dois rajouter un if en dessous, ou dans le même etc.... sauriez vous me dire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
          <?php 
             if(isset($_SESSION['admin'])){
               $id = $_SESSION['admin'];
               $requser = $db->prepare('SELECT * FROM membres WHERE id = ?');
               $requser->execute(array($id));
               $admininfo = $requser->fetch();
     
          ?>
    Voici le code complet de la page + en dessous le traitement admin/membre de ma page de connexion.

    Cordialement.

    INDEX.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
    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
     
     
    <?php
    session_start();
    	require 'db/database.php';
     
    	/* ON RECUPERE LES COMMENTAIRES */
     
    	$commentaires = $db->query("SET NAMES utf8");
    	$commentaires = $db->query('SELECT pseudo,time, message FROM commentaires ORDER BY id DESC');
    	$coms = $commentaires->fetchAll();
     
     
     
    ?>
     
    <?php include 'partials/header.php'; ?>
     
     
     
    <div class="wrapper">
     
    	<h1 class="text-logo">Poster un commentaire</h1>
     
    		<form id="1" class="form-accueil-contact" action="commentaires-traitement.php" method="POST">
     
     
          <?php 
             if(isset($_SESSION['admin'])){
               $id = $_SESSION['admin'];
               $requser = $db->prepare('SELECT * FROM membres WHERE id = ?');
               $requser->execute(array($id));
               $admininfo = $requser->fetch();
     
          ?>
     
          <?php if(array_key_exists('errors', $_SESSION)): ?>
            <div class="flash flash-danger">
              <?= implode('<br>', $_SESSION['errors']); ?>
            </div>
            <br>
          <?php endif; ?>
     
          <?php if(array_key_exists('success', $_SESSION)): ?>
            <div class="flash flash-success">
              Votre commmentaire à bien été publié.
            </div>
            <br>
          <?php endif; ?>
     
     
          <div class="row">
     
            <div class="col-sm-12">
            	<div class="form-group">
                <label>Identifiant <span class="etoile-rouge">*</span></label>
    					  <input type="text" class="form-control-commentaires" name="pseudo" readonly="readonly" value="<?php if(isset($_SESSION['membres'])) { echo "$membreinfo->name"; } ?><?php if(isset($_SESSION['admin'])) { echo "$admininfo->name"; } ?>">	
    					</div>
            </div>
     
            <div class="col-sm-12">
    		      <div class="form-group">
                <label>E-mail <span class="etoile-rouge">*</span></label>
                <input type="text" class="form-control-commentaires" name="email" readonly="readonly" value="<?php if(isset($_SESSION['membres'])) { echo $membreinfo->email; } ?><?php if(isset($_SESSION['admin'])) { echo $admininfo->email; } ?>">  
              </div>
            </div>
     
            <div class="col-sm-12">
              <div class="form-group">
                <label>Message <span class="etoile-rouge">*</span></label>
                <textarea id="message" type="text" class="form-control-commentaires" name="message"><?= isset($_SESSION['inputs']['message']) ? $_SESSION['inputs']['message'] : ''; ?></textarea> 
              </div>
            </div>
     
     
            <div class="col-sm-12">
              <div class="form-group">
                <button class="bouton bouton-success" type="submit" class="form-bouton"><span class="glyphicon glyphicon-send"> ENVOYER</span></button>
              </div>
            </div>
          </div>
     
    <?php 
    } else {
      echo "<div class='flash flash-danger'>Veuillez vous <a class='index-liens' href='http://localhost:8090/mescreations/connexion'>connecter</a> pour publier un commentaire<br> Pas encore de compte ? <a class='index-liens' href='http://localhost:8090/mescreations/inscription'>inscrivez vous ici</a> !</div>";
    }
     
    ?>
     
                    <!-- ON AFFICHE LES COMMENTAIRES -->
    		<div class="text-titre-commentaires">Commentaires</div>
     
    					<?php
    					foreach ($coms as $c) {
     
    			        echo '<tr>';
    							echo '<td><img class="avatar-accueil-commentaires" src="images/icons/avatar.png"><span class="label-accueil-commentaires">' . $c->pseudo . '</span></td><br>';
    							echo '<td><span class="time-accueil-commentaires">' . $c->time . '</span></td><br><br>';
    							echo '<td><div class="separateur"></div></td>';
    							echo '<td><span class="message-accueil-commentaires">' . $c->message . '</span></td><br><br><br><br>';
    							echo '</td>';
    							echo '</tr>';
    					}
    				?>
     
    		</form>
     
    </div> <!-- FIN div WRAPPER -->
     
    </body>
    </html>

    CONNEXION:


    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
    session_start();
    include 'db/database.php';
     
     
    if(!empty($_POST)) {
     
      $errors = [];
      $success = [];
     
      extract($_POST);
      $valid = true;
     
      if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$email)) {
        $valid = false;
        $errors['email'] = "Votre e-mail n'est pas valide.";
      }
     
      if(empty($email)) {
        $valid = false;
        $errors['email'] = "Vous n'avez pas rempli votre e-mail";
      }
     
      if(empty($pass)) {
        $valid = false;
        $errors['pass'] = "Vous n'avez pas rempli le mot de passe.";
      }
     
     
      if($valid) {
            $email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
            $pass = sha1($_POST['pass']);
            $reqadmin = $db->prepare('SELECT * FROM membres WHERE email = ? AND pass = ? AND statut = "administrateur"');
            $reqadmin->execute(array($email, $pass));
            $adminexist = $reqadmin->rowCount();
            if($adminexist == 1) {
               $admininfo = $reqadmin->fetch();
               $_SESSION['admin'] = $admininfo->id;
               $_SESSION['name'] = $admininfo->name;
               $_SESSION['email'] = $admininfo->email;
               $_SESSION['flash']['success'] = "Vous êtes maintenant connecté en tant qu'admin.";
                header("Location: http://localhost:8090/mescreations/admin.php?id=". $_SESSION['admin']);
                //header("Location: http://mescreations02.apps-1and1.net/admin?id=".$_SESSION['id']);
                exit();
            }
            $reqmembre = $db->prepare('SELECT * FROM membres WHERE email = ? AND pass = ? AND statut = "membre"');
            $reqmembre->execute(array($email, $pass));
            $membreexist = $reqmembre->rowCount();
            if($membreexist == 1) {
               $membreinfo = $reqmembre->fetch();
               $_SESSION['membre'] = $membreinfo->id;
               $_SESSION['name'] = $membreinfo->name;
               $_SESSION['email'] = $membreinfo->email;
               $_SESSION['flash']['success'] = "Vous êtes maintenant connecté en tant que membre";
                header("Location:http://localhost:8090/mescreations/membre.php?id=". $_SESSION['membre']);
                exit();
              }
          $errors['all'] = "L'e-mail ou le mot de passe est invalide.";
        }
      }
    ?>
     
    <?php include 'partials/header.php'; ?>
     
    <body style="background: rgba(255,182,193,0.9);">
     
    <div class="wrapper-connexion">
     
      <h1 class="text-logo-connexion">Connexion</h1>
     
                      <?php if(isset($_SESSION['flash'])): ?>
                        <?php foreach($_SESSION['flash'] as $type => $message): ?>
                          <div class="flash flash-<?= $type; ?>">
                           <?= $message; ?>
                          </div>
                        <?php endforeach ?>
                        <?php unset($_SESSION['flash']); ?>
                      <?php endif; ?>
                      <br>
     
                      <?php if(!empty($errors)): ?> 
                        <div class="flash flash-danger">   
                          <span class="fa fa-exclamation-circle" style="font-size: 20px"></span><p class="attention" style="font-weight: bold;">ATTENTION</p><br>
                            <?php foreach($errors as $error): ?>
                                 <?= $error; ?><br>
                            <?php endforeach; ?>
                        </div>
                      <?php endif; ?>
                      <br>
     
                <div class="content">
     
     
          <form class="formulaire-inscription" action="connexion.php" method="POST">
     
            <input id="email" type="text" class="form-control-connexion" name="email" placeholder="E-mail *" value="<?php if(isset($_POST['email'])) { echo $_POST['email']; } ?>">
            <input id="pass" type="password" class="form-control-connexion" name="pass" placeholder="Mot de passe *" value="<?php if(isset($_POST['pass'])) { echo $_POST['pass']; } ?>">
            <button type="submit" class="bouton bouton-success" name="submit">VALIDER</button>
                <a href="http://localhost:8090/mescreations/oublie">
                  <div class="forget-pass"> Mot de passe oublié ?</div>
                </a>
            <p style="text-align: center; padding:25px">Pas encore de compte ? <a href="inscription.php" style="color: #7A3E51 !important; font-weight: bold;">inscrivez vous ici.</a></p>
     
          </form>
    </div>
     
    </div> <!-- fin DIV WRAPPER -->

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Quand tu sauras expliquer clairement quelle(s) différence(s) il y a entre "admin", "membre" et "autres", tu auras ta réponse.

    Perso, j'aurais remplacé par :
    • $_SESSION['statut'], qui vaudra.... "admin", "membre" OU "autres" !
    • et $_SESSION['id_user'] pour stocker l'id.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2017
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2017
    Messages : 80
    Par défaut
    Bon ben comme je l'avais dis, et avec un peu de repos, j'ai finalement trouvé, ce n'était pas compliqué...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
          <?php 
             if(isset($_SESSION['admin']) || isset($_SESSION['membre'])) {  
          ?>  
     
                         // LE CONTENU A AFFICHER SI JE SUIS CONNECTE DANS UNE SESSION ADMIN OU MEMBRE
     
          <?php
            } else { // SINON (et donc que le formulaire n'est pas affiché) 
               echo "Un message pour avertir l'utilisateur normal qu'il doit se connecter avant de pouvoir utiliser le formulaire";   
           ?>
    Je passe en résolu....

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/04/2009, 20h43
  2. probleme de contenu de session
    Par ythim dans le forum Langage
    Réponses: 2
    Dernier message: 25/03/2009, 14h32
  3. JMX et contenu des sessions
    Par ruda.tom dans le forum Weblogic
    Réponses: 0
    Dernier message: 07/01/2009, 15h04
  4. Afficher le contenu de session
    Par ggeorges dans le forum Langage
    Réponses: 1
    Dernier message: 04/01/2008, 16h36
  5. Réponses: 3
    Dernier message: 30/05/2007, 10h22

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