Afficher un texte qui est cacher en css

Résolu/Fermé
johnjohn - Modifié par johnjohn le 4/11/2010 à 18:21
 johnjohn - 4 nov. 2010 à 20:01
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

coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
4 nov. 2010 à 18:30
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
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
4 nov. 2010 à 19:21
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
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
4 nov. 2010 à 19:23
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
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
Elsyfiryos Messages postés 83 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 12 septembre 2012 11
Modifié par Elsyfiryos le 4/11/2010 à 18:47
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

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

Merci de votre aide;)
0