
Code : Tout sélectionner
/* TOUTE cette première partie concerne l'affichage déroulant des notifications */
#menu, #menu ul /* Liste */
{
padding : 0; /* pas de marge intérieure */
margin : 0; /* ni extérieure */
list-style : none; /* on supprime le style par défaut de la liste */
line-height : 21px; /* on définit une hauteur pour chaque élément */
text-align : center; /* on centre le texte qui se trouve dans la liste */
}
#menu /* Ensemble du menu */
{
font-weight : bold; /* on met le texte en gras */
font-family : Arial; /* on utilise Arial, c'est plus beau ^^ */
font-size : 12px; /* hauteur du texte : 12 pixels */
}
#menu a /* Contenu des listes */
{
display : block; /* on change le type d'élément, les liens deviennent des balises de type block */
padding : 0; /* aucune marge intérieure */
background : #fff; /* couleur de fond */
color : #000; /* couleur du texte */
text-decoration : none; /* on supprime le style par défaut des liens (la plupart du temps = souligné) */
width : 144px; /* largeur */
}
#menu li /* Elements des listes */
{
float : left;
/* pour IE qui ne reconnaît pas "transparent" */
border-right : 1px solid #fff; /* on met une bordure blanche à droite de chaque élément */
}
/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menu li
{
border-right: 1px solid transparent ; /* on met une bordure transparente à droite de chaque élément */
}
#menu li ul /* Sous-listes */
{
position: absolute; /* Position absolue */
width: 144px; /* Largeur des sous-listes */
left: -999em; /* Hop, on envoie loin du champ de vision */
}
#menu li ul li /* Éléments de sous-listes */
{
/* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
border-top : 1px solid #fff; /* on met une bordure blanche en haut de chaque élément d'une sous liste */
}
/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menu li ul li
{
border-top : 1px solid transparent; /* on met une bordure transparente en haut de chaque élément */
}
#menu li ul ul
{
margin : -22px 0 0 144px ; /* On décale les sous-sous-listes pour qu'elles ne soient pas au dessus des sous-listes */
/* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
border-left : 1px solid #fff ; /* Petite bordure à gauche pour ne pas coller ... */
}
/* IE ne reconnaissant pas le sélecteur ">" ... je me répète ;-) */
html>body #menu li ul ul
{
border-left : 1px solid transparent ; /* on met une bordure transparente sur la gauche de chaque élément */
}
#menu a:hover /* Lorsque la souris passe sur un des liens */
{
color: #194898;
background: #fff;
}
#menu li:hover ul ul, #menu li.sfhover ul ul /* Sous-sous-listes lorsque la souris passe sur un élément de liste */
{
left: -999em; /* On expédie les sous-sous-listes hors du champ de vision */
}
#menu li:hover ul, #menu li li:hover ul, #menu li.sfhover ul, #menu li li.sfhover ul /* Sous-listes lorsque la souris passe sur un élément de liste ET sous-sous-lites lorsque la souris passe sur un élément de sous-liste */
{
left: auto; /* Repositionnement normal */
min-height: 0; /* Corrige un bug sous IE */
}
/* FIN DE CETTE PREMIERE PARTIE pour l'affichage déroulant des notifs */
a
{
text-decoration: none;
color: #194898;
}
a:hover
{
text-decoration: none;
text-decoration: underline;
color: #5368D2;
}
a:active
{
text-decoration: none;
text-decoration: underline;
color: #5368D2;
}
a:visited
{
text-decoration: none;
color: #194898;
}
body
{
text-align: center;
font-family: "Trebuchet MS", Arial;
}
.wio
{
font-style: italic;
font-size: 0.7em;
}
p
{
background-color: #9C9F9E;
margin-left: 100px;
margin-right: 100px;
}
.footer
{
margin-bottom: 100px;
border: 2px #194898 dashed;
}
.header .logo
{
position : absolute;
left: 9%;
}
.header
{
text-align: left;
}
.fullheader
{
position: absolute;
top: 0px;
margin-top: 0px;
margin-right: 0px;
margin-left: 0px;
text-align: center;
}<p class='fullheader'>Bienvenue
<?php echo $_SESSION['pseudo']; ?>
!
<ul id="menu" >
<li><a href="espacemembre.php" alt="espace_membre"><img src="images/espacemembre.png" alt="espace_membre" class="imgespace" /></a></li>
<li><a href="mesamis.php" alt="mes amis"><img src="images/amis.png" alt="mes amis" class="imgespace" /></a></li>
<li><a href="mesmessages.php" alt="mes messages"><img src="images/message.png" alt="mes messages" class="imgespace" /></a></li>
<li>
<a href="mesnotifications.php" alt="mes notifications"><img src="images/notif<?php echo $count_notifs; ?>.png" alt="mes notifications" /></a>
<ul>
<?php
//recuperation des notifs de l'user
$sql = 'SELECT * FROM notifications WHERE id_user='.$_SESSION['id'].' ORDER BY timestamp DESC LIMIT 0, 10';
$reqf = $connexion->query($sql);
$reqf->setFetchMode(PDO::FETCH_OBJ);
while ($dataf = $reqf->fetch())
{
echo '<li><a href="'.$dataf->lien.'" >'.$dataf->texte.'</a></li>';
}
?>
</ul>
</li>
</ul>
Au fait, merci pour ton aide <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<style type="text/css">
/* TOUTE cette première partie concerne l'affichage déroulant des notifications */
#nav{
margin-top:30px;
}
#menu, #menu ul /* Liste */
{
padding : 0; /* pas de marge intérieure */
margin : 0; /* ni extérieure */
list-style : none; /* on supprime le style par défaut de la liste */
line-height : 21px; /* on définit une hauteur pour chaque élément */
text-align : center; /* on centre le texte qui se trouve dans la liste */
}
#menu /* Ensemble du menu */
{
font-weight : bold; /* on met le texte en gras */
font-family : Arial; /* on utilise Arial, c'est plus beau ^^ */
font-size : 12px; /* hauteur du texte : 12 pixels */
}
#menu a /* Contenu des listes */
{
padding : 0; /* aucune marge intérieure */
background : #fff; /* couleur de fond */
color : #000; /* couleur du texte */
text-decoration : none; /* on supprime le style par défaut des liens (la plupart du temps = souligné) */
width : 144px; /* largeur */
}
#menu li /* Elements des listes */
{
float : left;
/* pour IE qui ne reconnaît pas "transparent" */
border-right : 1px solid #fff; /* on met une bordure blanche à droite de chaque élément */
}
/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menu li
{
border-right: 1px solid transparent ; /* on met une bordure transparente à droite de chaque élément */
}
#menu li ul /* Sous-listes */
{
position: absolute; /* Position absolue */
width: 144px; /* Largeur des sous-listes */
left: -999em; /* Hop, on envoie loin du champ de vision */
}
#menu li ul li /* Éléments de sous-listes */
{
/* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
border-top : 1px solid #fff; /* on met une bordure blanche en haut de chaque élément d'une sous liste */
}
/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menu li ul li
{
border-top : 1px solid transparent; /* on met une bordure transparente en haut de chaque élément */
}
#menu li ul ul
{
margin : -22px 0 0 144px ; /* On décale les sous-sous-listes pour qu'elles ne soient pas au dessus des sous-listes */
/* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
border-left : 1px solid #fff ; /* Petite bordure à gauche pour ne pas coller ... */
}
/* IE ne reconnaissant pas le sélecteur ">" ... je me répète ;-) */
html>body #menu li ul ul
{
border-left : 1px solid transparent ; /* on met une bordure transparente sur la gauche de chaque élément */
}
#menu a:hover /* Lorsque la souris passe sur un des liens */
{
color: #194898;
background: #fff;
}
#menu li:hover ul ul, #menu li.sfhover ul ul /* Sous-sous-listes lorsque la souris passe sur un élément de liste */
{
left: -999em; /* On expédie les sous-sous-listes hors du champ de vision */
}
#menu li:hover ul, #menu li li:hover ul, #menu li.sfhover ul, #menu li li.sfhover ul /* Sous-listes lorsque la souris passe sur un élément de liste ET sous-sous-lites lorsque la souris passe sur un élément de sous-liste */
{
left: auto; /* Repositionnement normal */
min-height: 0; /* Corrige un bug sous IE */
}
/* FIN DE CETTE PREMIERE PARTIE pour l'affichage déroulant des notifs */
a
{
text-decoration: none;
color: #194898;
}
a:hover
{
text-decoration: none;
text-decoration: underline;
color: #5368D2;
}
a:active
{
text-decoration: none;
text-decoration: underline;
color: #5368D2;
}
a:visited
{
text-decoration: none;
color: #194898;
}
body
{
text-align: center;
font-family: "Trebuchet MS", Arial;
}
.wio
{
font-style: italic;
font-size: 0.7em;
}
p
{
background-color: #9C9F9E;
margin-left: 100px;
margin-right: 100px;
}
.footer
{
margin-bottom: 100px;
border: 2px #194898 dashed;
}
.header .logo
{
position : absolute;
left: 9%;
}
.header
{
text-align: left;
}
.fullheader
{
position: absolute;
top: 0px;
margin-top: 0px;
margin-right: 0px;
margin-left: 0px;
text-align: center;
}</style>
</head>
<body>
<p class='fullheader'>Bienvenue <?php echo $_SESSION['pseudo']; ?>!</p>
<div id="nav">
<ul id="menu" >
<li>
<a href="espacemembre.php" alt="espace_membre"><img src="images/espacemembre.png" alt="espace_membre" class="imgespace" /></a>
</li>
<li>
<a href="mesamis.php" alt="mes amis"><img src="images/amis.png" alt="mes amis" class="imgespace" /></a>
</li>
<li>
<a href="mesmessages.php" alt="mes messages"><img src="images/message.png" alt="mes messages" class="imgespace" /></a>
</li>
<li>
<a href="mesnotifications.php" alt="mes notifications"><img src="images/notif<?php echo $count_notifs; ?>.png" alt="mes notifications" /></a>
<ul>
<li><a href="#" >$dataf->texte</a></li>
<li><a href="#" >$dataf->texte</a></li>
<li><a href="#" >$dataf->texte</a></li>
<li><a href="#" >$dataf->texte</a></li>
</ul>
</li>
</ul>
</div>
</body>
</html>
<!-- Qui est en Ligne ? -->
<?php
//requette SQL pour trouver les timestamp récent (moins de 1800 sec de vieillesse)
$timestamp = time() - 1800; // 1800sec = 30 minutes
$sql = 'SELECT * FROM logs WHERE timestamp > '.$timestamp;
$reqb = $connexion->query($sql);
$reqb->setFetchMode(PDO::FETCH_OBJ);
$count = $reqb->rowCount();
$reqb->closeCursor();
//requette SQL pour trouver les timestamp récent d'un user enregistre
$sql = 'SELECT * FROM logs WHERE timestamp > '.$timestamp.' AND id_mbr != 0';
$reqc = $connexion->query($sql);
$reqc->setFetchMode(PDO::FETCH_OBJ);
$count_enregistre = $reqc->rowCount();
$reqc->closeCursor();
//requette SQL pour trouver les timestamp récent d'un user enregistre
$sql = 'SELECT * FROM logs WHERE timestamp > '.$timestamp.' AND id_mbr = 0';
$reqd = $connexion->query($sql);
$reqd->setFetchMode(PDO::FETCH_OBJ);
$count_invite = $reqd->rowCount();
$reqd->closeCursor();
if ($count == 0)
{
//personne en ligne depuis - de 30 minutes
?>
Personne n'est en ligne :( ...
<?php
}
else
{
//qqun en ligne
echo $count.' user';
if ($count != 1)
{ echo 's'; }
echo ' en ligne, dont '.$count_enregistre.' enregistré';
if ($count_enregistre != 1)
{ echo 's'; }
echo ' et '.$count_invite.' visiteur';
if ($count_invite != 1)
{echo 's'; }
}
?>
</p></div><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<style type="text/css">
/* TOUTE cette première partie concerne l'affichage déroulant des notifications */
#nav{
margin-top:-9px;
margin-left:88px;
}
#menu, #menu ul /* Liste */
{
padding : 0; /* pas de marge intérieure */
margin : 0; /* ni extérieure */
list-style : none; /* on supprime le style par défaut de la liste */
line-height : 21px; /* on définit une hauteur pour chaque élément */
text-align : center; /* on centre le texte qui se trouve dans la liste */
}
#menu /* Ensemble du menu */
{
font-weight : bold; /* on met le texte en gras */
font-family : Arial; /* on utilise Arial, c'est plus beau ^^ */
font-size : 12px; /* hauteur du texte : 12 pixels */
}
#menu a /* Contenu des listes */
{
padding : 0; /* aucune marge intérieure */
background : #fff; /* couleur de fond */
color : #000; /* couleur du texte */
text-decoration : none; /* on supprime le style par défaut des liens (la plupart du temps = souligné) */
width : 144px; /* largeur */
}
#menu li /* Elements des listes */
{
float : left;
/* pour IE qui ne reconnaît pas "transparent" */
border-right : 1px solid #fff; /* on met une bordure blanche à droite de chaque élément */
}
/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menu li
{
border-right: 1px solid transparent ; /* on met une bordure transparente à droite de chaque élément */
}
#menu li ul /* Sous-listes */
{
position: absolute; /* Position absolue */
width: 144px; /* Largeur des sous-listes */
left: -999em; /* Hop, on envoie loin du champ de vision */
}
#menu li ul li /* Éléments de sous-listes */
{
/* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
border-top : 1px solid #fff; /* on met une bordure blanche en haut de chaque élément d'une sous liste */
}
/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menu li ul li
{
border-top : 1px solid transparent; /* on met une bordure transparente en haut de chaque élément */
}
#menu li ul ul
{
margin : -22px 0 0 144px ; /* On décale les sous-sous-listes pour qu'elles ne soient pas au dessus des sous-listes */
/* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
border-left : 1px solid #fff ; /* Petite bordure à gauche pour ne pas coller ... */
}
/* IE ne reconnaissant pas le sélecteur ">" ... je me répète ;-) */
html>body #menu li ul ul
{
border-left : 1px solid transparent ; /* on met une bordure transparente sur la gauche de chaque élément */
}
#menu a:hover /* Lorsque la souris passe sur un des liens */
{
color: #194898;
background: #fff;
}
#menu li:hover ul ul, #menu li.sfhover ul ul /* Sous-sous-listes lorsque la souris passe sur un élément de liste */
{
left: -999em; /* On expédie les sous-sous-listes hors du champ de vision */
}
#menu li:hover ul, #menu li li:hover ul, #menu li.sfhover ul, #menu li li.sfhover ul /* Sous-listes lorsque la souris passe sur un élément de liste ET sous-sous-lites lorsque la souris passe sur un élément de sous-liste */
{
left: auto; /* Repositionnement normal */
min-height: 0; /* Corrige un bug sous IE */
}
/* FIN DE CETTE PREMIERE PARTIE pour l'affichage déroulant des notifs */
a
{
text-decoration: none;
color: #194898;
}
a:hover
{
text-decoration: none;
text-decoration: underline;
color: #5368D2;
}
a:active
{
text-decoration: none;
text-decoration: underline;
color: #5368D2;
}
a:visited
{
text-decoration: none;
color: #194898;
}
body
{
text-align: center;
font-family: "Trebuchet MS", Arial;
}
.wio
{
font-style: italic;
font-size: 0.7em;
}
p
{
background-color: #9C9F9E;
margin-left: 100px;
margin-right: 100px;
}
.footer
{
margin-bottom: 100px;
border: 2px #194898 dashed;
}
.header .logo
{
position : absolute;
left: 9%;
}
.header
{
text-align: left;
}
.fullheader
{
position: absolute;
top: 0px;
margin-top: 0px;
margin-right: 0px;
margin-left: 0px;
text-align: center;
}</style>
</head>
<body>
<p class='fullheader'>Bienvenue <?php echo $_SESSION['pseudo']; ?>!</p>
<div id="nav">
<ul id="menu" >
<li>
<a href="espacemembre.php" alt="espace_membre"><img src="images/espacemembre.png" alt="espace_membre" class="imgespace" /></a>
</li>
<li>
<a href="mesamis.php" alt="mes amis"><img src="images/amis.png" alt="mes amis" class="imgespace" /></a>
</li>
<li>
<a href="mesmessages.php" alt="mes messages"><img src="images/message.png" alt="mes messages" class="imgespace" /></a>
</li>
<li>
<a href="mesnotifications.php" alt="mes notifications"><img src="images/notif<?php echo $count_notifs; ?>.png" alt="mes notifications" /></a>
<ul>
<li><a href="#" >$dataf->texte</a></li>
<li><a href="#" >$dataf->texte</a></li>
<li><a href="#" >$dataf->texte</a></li>
<li><a href="#" >$dataf->texte</a></li>
</ul>
</li>
<li>
<?php
//requette SQL pour trouver les timestamp récent (moins de 1800 sec de vieillesse)
$timestamp = time() - 1800; // 1800sec = 30 minutes
$sql = 'SELECT * FROM logs WHERE timestamp > '.$timestamp;
$reqb = $connexion->query($sql);
$reqb->setFetchMode(PDO::FETCH_OBJ);
$count = $reqb->rowCount();
$reqb->closeCursor();
//requette SQL pour trouver les timestamp récent d'un user enregistre
$sql = 'SELECT * FROM logs WHERE timestamp > '.$timestamp.' AND id_mbr != 0';
$reqc = $connexion->query($sql);
$reqc->setFetchMode(PDO::FETCH_OBJ);
$count_enregistre = $reqc->rowCount();
$reqc->closeCursor();
//requette SQL pour trouver les timestamp récent d'un user enregistre
$sql = 'SELECT * FROM logs WHERE timestamp > '.$timestamp.' AND id_mbr = 0';
$reqd = $connexion->query($sql);
$reqd->setFetchMode(PDO::FETCH_OBJ);
$count_invite = $reqd->rowCount();
$reqd->closeCursor();
if ($count == 0)
{
//personne en ligne depuis - de 30 minutes
?>
Personne n'est en ligne <img src="http://forum.phpfrance.com/images/smilies/icon_sad.gif" alt=":(" title="Sad" /> ...
<?php
}
else
{
//qqun en ligne
echo $count.' user';
if ($count != 1)
{ echo 's'; }
echo ' en ligne, dont '.$count_enregistre.' enregistré';
if ($count_enregistre != 1)
{ echo 's'; }
echo ' et '.$count_invite.' visiteur';
if ($count_invite != 1)
{echo 's'; }
}
?>
</li>
</ul>
</div>
</body>
</html>