vet du även hur man kan göra satt den ändrar en viss tabell när en besökare bara stänger browsern eller surfar till en annan sida utan att trycka på logout..... ??
antingen kör du ett cron job eller då startsidan som uppdaterar databasen genom att kolla tiden på den inloggade och ta bort de som har passerat en viss gräns så kan du printa ut hur många / vilka som är inloggade . .för det är troligen det du är ute efter ?
hur kan en funktion se ut för att... startsidan ska uppdaterara databasen genom att kolla tiden på den inloggade och ta bort de som har passerat en viss gräns...
nu snabb kladdar jag lite ( har bråttom iväg ) hopas du kan få några idéer
$prutt = $active - 600;
$you = mysql_query("SELECT id,time FROM users WHERE id = '".$_SESSION['user_id']."' AND time < '$prutt'") or die ("DB Error!");
if (!mysql_num_rows($you) \< 1) {
header("Location: /logout.php?reason=mahedelhasleftthebuilding");
exit;
}
funktionen för denna sida är att den ska kolla om användarna i databasen har varit inne och sen bara stängt av browsern alltså sidan ska hämta hem alla värden från användare som inte har varit aktiva under 600 sekunder i tabellen varns namn på kolumnen är: "active"... och sen kolla om 600 sekunder har passerat... då ska den sätta tabellen online till 0 fast den förflyttar inte ens sidan...
denna rad verkar fel.... Warning: Supplied argument is not a valid MySQL result resource in /home/www/bajs/komjunity/online.php on line 10
if (!mysql_num_rows($you) < 1) {
har testat att ändra på rad 10 men blir inte som jag vill... hjälp tack..
den kanske inte är så säker men jag kör en require längst upp i alla mina filer som ser ut på detta sätt... (den kontaktar en mysql databas, sen så kollar den om det är rätt login och pass... vattentätt tycker jag... vad tycker ni?):
1. Varför öppnar du inte db'n i filen db.php?
2. Varför skapar du en varibel till db'n? Om du bara använder en så behöver du inte göra det!
3.
echo("<script language=JavaScript>");
echo("self.location.replace('index.html')");
echo("</script>");
skriv Header("Location: index.html") istället!
4. varför skapar du nya variabler med samma innehåll som $login_user och $login_pass? Vad betyder de där @ tecknen? Sparas de som sessions? Använd isf $_SESSION["namne"], har doch ingen naing om vad de där @-tecknen betyder. Kanske pg att jag inte gjort något i php på ett år!
5. Onödigt att göra en fetch_array, använd mysql_num_rows och se om det fanns några poster istället! SÅ ,åtse du förståss kontrollera både username och passwd i queryn.
6. hur kommer det sig att du skriver en ?> och direkt efter skriver en <? ?
7. Otroligt onödigt 2 st databas connections.
<?
// Lägg detta i db.php ****
mysql_connect("localhost","xxx","xxx");
mysql_select_db("min_db");
// ***********************
$num = mysql_num_rows(mysql_query("SELECT * FROM table WHERE user = '$user' AND password = PASSWORD('$password')"));
if !$num
{
// INTE INLOGGAD
Header("Location: Index.php");
}
// ANNARS INLOGGAD!
?>
funktionen för denna sida är att den ska kolla om användarna i databasen har varit inne och sen bara stängt av browsern alltså sidan ska hämta hem alla värden från användare som inte har varit aktiva under 600 sekunder i tabellen varns namn på kolumnen är: "active"... och sen kolla om 600 sekunder har passerat... då ska den sätta tabellen online till 0 fast den förflyttar inte ens sidan...
denna rad verkar fel.... Warning: Supplied argument is not a valid MySQL result resource in /home/www/bajs/komjunity/online.php on line 10
if (!mysql_num_rows($you) < 1) {
har testat att ändra på rad 10 men blir inte som jag vill... hjälp tack..
Ska alla som inte har varit aktiva de senaste 10 minuterna bli ut kastade? Eller bara just denna person?
Så här kanske?
<?
// Lägg detta i db.php ****
mysql_connect("localhost","xxx","xxx");
mysql_select_db("min_db");
// ***********************
$result = mysql_query("SELECT * FROM table WHERE online = '1' AND user = '$user' AND password = PASSWORD('$password')") or die ("Fel #" . mysql_errno() . ": " . mysql_error());;
$num = mysql_num_rows(result);
if !$num
{
// INTE INLOGGAD
Header("Location: Index.php");
}
$data = mysql_fetch_array(result);
if $data["ActiveAt"] < time() - 600
{
mysql_query("UPDATE mingla SET online='0' WHERE user = '$user'") or die ("Fel #" . mysql_errno() . ": " . mysql_error());
}
?>