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!
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.
Wat is je profielen website?
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

<?

$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 ???
Ervan uitgaande dat je je UserID in je sessie hebt staan doe je dit:

<?php
$userid=$_SESSION['userid'];
$logout = mysql_query("update members set online='0' where userid='$userid'");
session_destroy();
echo "Succesvol uitgelogd!";
?>
Wat is je profielenwebsite dan?

Ben nu wel benieuwd :D
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.
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?
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
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>";
};
};
Hier eentje die ik gebruik:

<?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>";
?>

Reageren