Online/offline status script
ik heb een profielen site, en nou wil ik dat hij bij elke profiel neerzet of de user online of offline is
ik wil graag weten hoe dat kan dmv sessions..... welke sessions en hoe ik dat dan moet doen,,
thanks!
Zet dus in je database, dat iemand online is. En zorg bijvoorbeeld met een ander script, dat iemand die niet meer online is, elke 10 minuten, of wat jou voorkeur heeft, weer op offline wordt gezet.
En natuurlijk ook bij het uitloggen weer veranderen naar offline.
Wat is je profielen website?
oke dan maar op een andere manier ik heb
`online` int(1) default '0',
toegevoegd in de tabel members.... wanneer iemand inlogt gebeurt het volgende
$result2 = mysql_query("update members set online='1' where userid='$userid'");
dus hij veranderd in de tabel de 0 naar een 1 als iemand inlogged........
dan nu naar de profielen script
if ($row[online] == "1")
{
echo "
<img src=img/profielen/online.gif>
";
}
else
{
echo "
<img src=img/profielen/offline.gif>
";
}
oke cool dat werkt................
en nu wil ik dat hij wanneer de persoon uitlogt "online" weer op 0 zet.......
dit is logout.php
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
$result2 = mysql_query("update members set online='0' where userid='$userid'");
session_destroy();
echo "Succesvol uitgelogd!";
?>
$result2 = mysql_query("update members set online='0' where userid='$userid'");
session_destroy();
echo "Succesvol uitgelogd!";
?>
<SCRIPT LANGUAGE=javascript>
alert('Je bent nu uitgelogt, tot ziens!')
window.location='?page=home'
</SCRIPT>
oke thanks robbert het werkt!!!!!!!!
alleen vraag ik me af of dit de beste manier is?? of dat ik het misschien anders moet doen ???
Gewijzigd op 17/01/2006 23:19:00 door R
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$userid=$_SESSION['userid'];
$logout = mysql_query("update members set online='0' where userid='$userid'");
session_destroy();
echo "Succesvol uitgelogd!";
?>
$userid=$_SESSION['userid'];
$logout = mysql_query("update members set online='0' where userid='$userid'");
session_destroy();
echo "Succesvol uitgelogd!";
?>
Ben nu wel benieuwd :D
Wat je wel kan doen is een datetime toevoegen aan je database, en die updaten wanneer iemand online is en binnen je profielensysteem naar een andere pagina gaat.
Als je de mogelijkheid hebt tot cronjobs zou je bijvoorbeeld elk halfuur een script kunnen draaien, die mensen die langer dan een bepaalde tijd niet actief zijn (hiervoor moet je de tijd vergelijken) weer als status 0 te geven.
maar volgends mij heb ik de mogelijkheid tot cronjobs niet..
geen andere manier?
vb. telkens een gebruiker op een pagina staat de datum en tijd in de DB opslaan
+
als er gewoon ergens een pagina geopend wordt, dan checken waar online 1 is en dan of er ergens een van die datums langer dan 10 min geleden is. indien ja, dan online op 0 zetten
include ('connect.php');
if(isset($_SESSION['S_M_LLogin'])){
$NU_Datum = date("Y-m-d H:i:s");
if(mysql_query("update tbl_members set LaatsteLogin='$NU_Datum' WHERE M_id='$CHK_M_Login'"));
}else{
//niets
};
$result = mysql_query("select * from tbl_members order by M_id")
or include ('Source\Script\MailErrorBase.php');;
while($row=mysql_fetch_array($result)){
$LaatsteLogin = $row['LaatsteLogin'];
$M_Nick = $row['M_Nick'];
$Huidige_Tijd = strtotime(date("Y-m-d H:i:s"));
$Tijd_voor_Offline = (60*10);
$Laatste_Login = strtotime ($LaatsteLogin); //deze haal je uit de database
$Max_Tijd = ($Laatste_Login + $Tijd_voor_Offline);
if($Max_Tijd >= $Huidige_Tijd){
echo "$M_Nick online<BR>";
}else{
echo "$M_Nick offline<BR>";
};
};
Gewijzigd op 18/01/2006 04:30:00 door wesley
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$recent=date("U")-900;
//pakt de leden van de laaste 15 minuten
$getusersonline="SELECT userID,username from b_users where lasttime>'$recent'";
$getusersonline2=mysql_query($getusersonline) or die("Kon geen leden ophalen!");
$num=mysql_num_rows($getusersonline2);
$countguests="SELECT DISTINCT guestip from guestsonline where time>'$recent'";
$countguests2=mysql_query($countguests) or die("Kan de gasten niet tellen!");
$thecount=mysql_num_rows($countguests2);
echo "<table class='maintable' cellspacing='1'>";
echo "<tr class='catline'><td colspan='2'><b>Er zijn $num leden en $thecount guests online geweest in de laatste 15 minuten</td></tr>";
print "<tr class='forumrow'><td>";
while($getusersonline3=mysql_fetch_array($getusersonline2))
{
echo "<a href='profile.php?userID=$getusersonline3[userID]'>$getusersonline3[username]</a>,";
}
echo "</td></tr></table><br>";
?>
$recent=date("U")-900;
//pakt de leden van de laaste 15 minuten
$getusersonline="SELECT userID,username from b_users where lasttime>'$recent'";
$getusersonline2=mysql_query($getusersonline) or die("Kon geen leden ophalen!");
$num=mysql_num_rows($getusersonline2);
$countguests="SELECT DISTINCT guestip from guestsonline where time>'$recent'";
$countguests2=mysql_query($countguests) or die("Kan de gasten niet tellen!");
$thecount=mysql_num_rows($countguests2);
echo "<table class='maintable' cellspacing='1'>";
echo "<tr class='catline'><td colspan='2'><b>Er zijn $num leden en $thecount guests online geweest in de laatste 15 minuten</td></tr>";
print "<tr class='forumrow'><td>";
while($getusersonline3=mysql_fetch_array($getusersonline2))
{
echo "<a href='profile.php?userID=$getusersonline3[userID]'>$getusersonline3[username]</a>,";
}
echo "</td></tr></table><br>";
?>