Online/offline status script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

R

R

17/01/2006 22:40:00
Quote Anchor link
hey mensen,,

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!
 
PHP hulp

PHP hulp

16/01/2025 06:05:08
 
Robert Deiman

Robert Deiman

17/01/2006 22:45:00
Quote Anchor link
Dat kan niet met sessions, alleen voor de betrokken user zelf. Je kan wel als iemand is ingelogd, in de database zetten dat die online is, die is wel door iedereen te zien. Een sessie is afhankelijk van de computer waarmee is ingelogd. Als ik in zou loggen, ben ik de engige die (normaal gesproken, dus geen gehack) van die sessie gebruik kan maken.
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.
 
Zelf Weten

Zelf Weten

17/01/2006 22:46:00
Quote Anchor link
Wat is je profielen website?
 
R

R

17/01/2006 23:15:00
Quote Anchor link
hey thanks.... (ik ik maar de hele dag kloten met die sessions.......)

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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?

$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
 
Robert Deiman

Robert Deiman

17/01/2006 23:18:00
Quote Anchor link
Ervan uitgaande dat je je UserID in je sessie hebt staan doe je dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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!";
?>
 
Zelf Weten

Zelf Weten

17/01/2006 23:26:00
Quote Anchor link
Wat is je profielenwebsite dan?

Ben nu wel benieuwd :D
 
Robert Deiman

Robert Deiman

17/01/2006 23:33:00
Quote Anchor link
Tjah.. als iemand nu niet uitlogt, dan blijf hij gewoon op online staan in de database. Wat dat betreft is het niet de beste oplossing. (ik weet het, dat hebben ze hier ook :P)
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.
 
R

R

17/01/2006 23:37:00
Quote Anchor link
ja daar zat ik dus ook aan te denken... wat als iemand de page egwoon afsluit.......

maar volgends mij heb ik de mogelijkheid tot cronjobs niet..

geen andere manier?
 
Hipska BE

Hipska BE

17/01/2006 23:51:00
Quote Anchor link
een actief-datum toevoegen

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
 
Wesley

wesley

18/01/2006 03:55:00
Quote Anchor link
ik zou zelf inderdaad ook met tijd werken. Deze is die van mij... Na 10 min is de user offline dit kan je makkelijk veranderen

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
 
Lissy Pixel

Lissy Pixel

18/01/2006 08:18:00
Quote Anchor link
Hier eentje die ik gebruik:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
?>
 
Erik Rijk

Erik Rijk

18/01/2006 10:40:00
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.