Afficher un texte qui est cacher en css

Résolu
johnjohn -  
 johnjohn -
Bonjour,

Après de multiple recherche je n'arrive pas à afficher du texte que j'ai caché en css.

J'ai crée un espace membre et je voudrais une fois que le membre est connecté afficher à coté de "mon compte" un lien "( deconnection ")mais si personne n'est connecté le lien ne doit pas est présent.

Pour commencé j'ai mis une class="deconnection" avec comme mise en forme .css:

.deconnection 
{ 
font-family: arial; 
font-size: 80%; 
visibility: hidden; 
} 


Mais comment je peux faire pour l'afficher lorsqu'un membre est connecté?

 
<?php 
session_start(); 
// si le membre est connecté  
 if (isset($_SESSION['mail'])) { 
// on affiche la class deconnection quel code utiliser? 
} 
?> 


Merci de votre aide.

5 réponses

  1. coeus Messages postés 3296 Statut Membre 120
     
    Tu peux y aller en Javascript :

    D'abord, je te conseille de mettre un ID à ton bloc de texte ; ce sera plus facile. Ensuite, mets dans ton PHP :

    <?php
     
     if (isset($_SESSION['mail'])) { 
    
    print '<script type="text/javascript">
    document.getElementById("monID").style.visibility="visible";
    </script>';
    
    } 
    
    ?> 
    
    

    Ou sinon, plus "propre", au début de ta page tu déclares une variable :

    <?php
     
    session_start(); 
    
    if (isset($_SESSION['mail'])) { 
    
    $visible = 'visible';
    
    } else {
    
    $visible = 'hidden';
    
    }
    
    ?> 
    
    

    et tu passes la variable à ta balise HTML :

    <div class="deconnection <?php print $visible; ?>">...</div>

    et finalement tu modifies ton CSS :

    .deconnection 
    { 
    font-family: arial; 
    font-size: 80%; 
    }
    .deconnection.visible { visibility: visible; }
    .deconnection.hidden { visibility: hidden; }
    


    J'espère que ça t'aide !!! :)
    1
  2. coeus Messages postés 3296 Statut Membre 120
     
    Pour le Mon Compte/Mon panier, je vois deux solutions.

    Soit tu changes l'ordre dans ton HTML, soit tu utilises des attributs CSS float:right; qui vont afficher tes éléments dans un ordre inversé au float:left;.

    Mais de ce que je comprends, tu voudrais que, quand l'utilisateur est connecté, le lien "Mon Compte" soit à gauche, mais qu'il soit à droite lorsqu'il est déconnecté ?

    Si c'est le cas j'opterais pour une solution qui ressemble à celle de Elsyfiryos. mets un bout de PHP à l'endroit où se trouve le HTML du lien de Déconnexion :

    
    <?php
    
    if (isset($_SESSION['mail'])) { 
    
    print '<a href="#" class="deconnection">Mon Compte (Déconnexion)</a>
    <a href="#">Mon Panier</a>';
    
    } else {
    
    print '<a href="#">Mon Panier</a>
    <a href="#" class="connection">Mon Compte</a>';
    
    }
    
    ?> 
    
    


    Comme ça tu peux rétablir ton CSS comme il était avant ; le lien "deconnection" ne s'affichera même pas si l'utilisateur n'est pas connecté, donc pas besoin de le cacher...
    1
    1. coeus Messages postés 3296 Statut Membre 120
       
      Remarque, alternativement, tu peux aussi adapter le PHP pour donner la classe .visible ou .hidden à ton lien .deconnection, si jamais ça devait rester comme ça. Mais j'ai confiance que tu pourras adapter ce code à tes besoins ;)
      0
  3. johnjohn
     
    Merci beaucoup j'ai opté pour la 2e solutions ca marche nikel.

    Juste une chose qui me dérange:

    Le deconnection quand est visible se met bien:

    Mon compte (deconnection) Mon panier

    Par contre quand il est pas visible il se met comme ça:

    Mon compte Mon panier

    Comment décaler Mon compte vers la droite pour qu'il soit à coté de Mon panier?
    0
  4. Elsyfiryos Messages postés 90 Statut Membre 11
     
    Techniquement, avec juste ceci:
    <?php  
    session_start();  
    // si le membre est connecté   
     if (isset($_SESSION['mail'])) {  
    // on affiche la class deconnection quel code utiliser?  
    }  
    ?> 

    Cela devrais marcher.

    En clair ça veut dire:
    "Si le membre a la session mail (en clair, qu'il est connecté), alors on affiche le code de déconnexion."

    Après, tu peux faire ceci:
    <?php  
    session_start();  
    // si le membre est connecté   
     if (isset($_SESSION['mail'])) {  
          echo '<a href='deco.php' title='Déconnexion' >Déconnexion</a>';  
    }  
    ?> 


    Après tu fais un fichier deco.php
    <?php 
    session_start(); 
    $_SESSION = array();  
    // session_unset(); 
    session_destroy(); 
    header('Location: ' . $_SERVER['HTTP_REFERER'] );  
    ?>


    session_start(); <-- obligatoire
    session_unset(); <-- détruit toute les session
    session_destroy(); <-- détruit la session
    header('Location: ' . $_SERVER['HTTP_REFERER'] ); c'est pour retourner a la page précédente. (tu pourrais mettre vers la page d'accueil ou autre.)

    A+

    Je recherche une entreprise pour contrat d'alternance en informatique, IDF.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. johnjohn
     
    Merci voilà j'ai réussi à faire se que je voulais.

    Merci de votre aide;)
    0