Avatar billede jens12 Nybegynder
21. maj 2006 - 15:11 Der er 25 kommentarer og
1 løsning

log ud efter 15 minutter

Hej jeg er ved at lave et community og jeg er nu ved den del,hvor brugerne skal blive logget ud efter 15 minutter,hvis de ikke har trykket på logud,altså bare ved at trykke på krydset...Hvorfor virker min kode ikke? :
<?php
session_start();
?>
<html>
<head>
<meta http-equiv="Refresh" content="900">
</head>
<body>
<?php
include("connect.php");
if($brugernavn && $adgang){

$q = mysql_query("UPDATE login SET status = 'Offline' WHERE date_add(tid,interval 15 MINUTE) < NOW()");
header("logoff.php");
mysql_close();
}
?>
</body>
</html>
Hvis i har brug for mere info om hvordan communityet er opbygget så sig til!
Avatar billede michael_stim Ekspert
21. maj 2006 - 15:18 #1
Er der ikke noget der hedder session.timeout=15;
Avatar billede jens12 Nybegynder
21. maj 2006 - 15:20 #2
Jo,Men så opdatere den jo hellere pointene eller status i communityet:P
Avatar billede michael_stim Ekspert
21. maj 2006 - 15:21 #3
nej, så let skulle det ikke väre ;o)
Har du adgang til ini?
Avatar billede jens12 Nybegynder
21. maj 2006 - 15:22 #4
Adgang til hvad ?
Avatar billede michael_stim Ekspert
21. maj 2006 - 15:25 #5
Det fungere ikke alligevel. Når du ikke vil bruge session. php.ini
Avatar billede jens12 Nybegynder
21. maj 2006 - 15:26 #6
Altså nu gør du mig helt forvirret:S
Avatar billede michael_stim Ekspert
21. maj 2006 - 15:30 #7
Men hvis du starter en session, bliver de jo automatisk logget ud når de trykker på krydset. Det er da heltklart måden at göre det på, eller?

Altså du starter en session når brugeren logger ind.
Avatar billede jens12 Nybegynder
21. maj 2006 - 15:34 #8
Jo,det ville jo helt klart være den nemeste måde at gøre det på...Men så ville den jo heller ikke opdatere pointene eller brugerens status..Men hvis brugeren logger rigtigt ud så ville brugeren både få point og statusen ville blive opdateret....
Avatar billede michael_stim Ekspert
21. maj 2006 - 15:43 #9
OK, så er jeg med. Der må jeg nok stå af. Man kan sikkert se på klienten når der lukkes ned mha et javascript. Men tvivler på at serveren kan se det ;o)
Avatar billede jens12 Nybegynder
21. maj 2006 - 15:55 #10
Æv...:P
Avatar billede Slettet bruger
21. maj 2006 - 19:10 #11
Hvis brugerne ikke logger pænt ud, er det vel heller ikke urimeligt at de ikke får point?
Avatar billede jens12 Nybegynder
21. maj 2006 - 19:29 #12
kfisker...det er selvfølgelig rigtigt med så forbliver brugernen jo Online...
Avatar billede jens12 Nybegynder
21. maj 2006 - 19:46 #13
med = men
Avatar billede amews_aj Nybegynder
21. maj 2006 - 19:52 #14
Lav en fil som indlæses på alle dine sider, så skal du i databasen ved hver bruger have et felt som opdaterer tiden hver gang brugeren skifter side.
Hvis brugeren så ikke har skiftet side, databasen altså ikek er opdateret, i et antal minutter, så skal den gå offline og evt. udregne point og tildele dem.

Håber du forstår..
Avatar billede jens12 Nybegynder
21. maj 2006 - 19:57 #15
jeg forstår amews_aj,Kan du komme med noget kode,jeg kan rode med ?
Avatar billede jens12 Nybegynder
21. maj 2006 - 19:58 #16
Skal nok give flere point!
Avatar billede amews_aj Nybegynder
21. maj 2006 - 20:02 #17
altså hver gang en bruger skifter side opdaterer du tiden i databasen

$actual_time = time();
mysql_query("UPDATE users SET lastactivity = '".$actual_time."' WHERE user = '".$username."'");

og så tjekker du alle brugeres aktivitet

$activity = mysql_query("SELECT * FROM users");
while ( $tjek_activity = mysql_fetch_array($activity) ) {
$actual_time = time();
$time_to_log_off = $actual_time - 60 * 3; // 3 minutter
if ( $tjek_activity['lastactivity'] < $time_to_log_off ) {
  // LOG BRUGEREN AF
}
Avatar billede jens12 Nybegynder
21. maj 2006 - 20:03 #18
Tak,Jeg tester lige:D
Avatar billede amews_aj Nybegynder
21. maj 2006 - 20:11 #19
og du bør også tjekke om brugeren allerede er logget af, inden du logger brugeren af igen, den skal jo ikke have dobbelt point.

if ( $tjek_activity['lastactivity'] < $time_to_log_off && $tjek_activity['online'] != "offline") {
  // LOG BRUGEREN AF
}
Avatar billede jens12 Nybegynder
21. maj 2006 - 20:31 #20
Hmm..Synes ikke jeg kan få det til at virke:S
Avatar billede jens12 Nybegynder
21. maj 2006 - 20:39 #21
Får denne fejl:
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/web/web24064/community/default.php:5) in /usr/home/web/web24064/community/default.php on line 16
Kode: default.php Det er den fil brugeren ser når man er logget ind:
<?
session_start();
?>

<? if ($user && $adgang) { ?>
<?
include("connect.php");
$date = date("d/m-20y - H:i:s");
$query = mysql_query("UPDATE login SET status = 'Online', login='$date' WHERE brugernavn = '".$_SESSION['user']."'");

$activity = mysql_query("SELECT * FROM login");
while ( $tjek_activity = mysql_fetch_array($activity) ) {
$actual_time = time();
$time_to_log_off = $actual_time - 60 * 1; // 3 minutter
if ( $tjek_activity['lastactivity'] < $time_to_log_off && $tjek_activity['status'] != "offline") {
header("LOCATION:logoff.php");
}
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.1 Transitional//EN">
<HTML>
<HEAD>
<TITLE></TITLE>
<link rel="stylesheet" href="style.css" type="text/css">
<meta http-equiv="Refresh" content="30;URL=default.php">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body {
    background-image: url(../img/baggrund.JPG);
}
.style1 {color: #FFFFFF}
body,td,th {
    color: #FFFFFF;
}
a:link {
    color: #FFFFFF;
}
-->
</style></HEAD>
<BODY STYLE="BACKGROUND-image:url(../img/baggrund.JPG);">

<? if ($adgang == "slet") { ?>
<iframe width="99%" height="99%" src="slet.php" frameborder="0"></iframe>

<? } else if ($adgang == "admin") { ?>

<!-- Menu -->
<iframe src="/community/on_off.php" name="" frameborder="0" height="0" width="0"></iframe><center>

  <a href="profile.php" target="main">Profil</a> <a href="gb/gb.php?til=<? echo"$user";?>" target="main" >G&aelig;stebog</a> (
  <?
  include("connect.php");
$result = mysql_query("SELECT * FROM gb WHERE til = '$user'");
echo mysql_num_rows($result);
mysql_close();
?>
)<a href="tagwall/default.php" target="main">Opslagstavlen</a> <a href="admin/support/henvendelser.php" target="main">Henvendelser</a> <a href="admin/default.php" target="main">Admin</a>
<select name="select" class="ForsideTop" onChange="top.main.location.href = this.options[this.selectedIndex].value"
>
      <option value="/community/profile.php" selected>Rediger bruger:</option>
    <option value="/community/chat/default.php">Chat</option>
  <option value="/community/ret/Personligt3.php">Personlige indstillinger</option>
  <option value="/community/ret/personligt.php">Profiltekst</option>
  <option value="/community/humor/edit_humor.php">Hum&oslash;r</option>
    <option value="/community/dagbog/default.php">Dagbog</option>
    <option value="/community/link/default_on.php">Ynglings hjemmesider</option>
    <option value="/style/style.php">Farvetemaer</option>
  <option value="/community/top10/default.php">Top 10 venner</option>
  <option value="/community/profil/default.php">Profil-billede</option>
    <option value="/community/galleri/default.php">Galleri</option>
  <option value="/community/gb/bannet/default.php">Bloker bruger</option>
</select>
<select name="dropdown" class="ForsideTop" onChange="top.main.location.href = this.options[this.selectedIndex].value">
  <option value="profile.php" selected>Status:</option>
  <option value="online.php">Online</option>
  <option value="optaget.php">Optaget</option>
  <option value="ikke.php">Ikke til stede</option>
</select>
  </a><a href="logoff.php" target="login"> Log af</a>
</center>
  <? } else if ($adgang == "supporter") { ?>
<iframe src="/community/on_off.php" name="" frameborder="0" height="0" width="0"></iframe><center>
  <span class="style1"><a href="profile.php" target="main">Profil</a> <a href="gb/gb.php?til=<? echo"$user";?>" target="main" >G&aelig;stebog (
  <?
  include("connect.php");
$result = mysql_query("SELECT * FROM gb WHERE til = '$user'");
echo mysql_num_rows($result);
mysql_close();
?>
  )</a><a href="tagwall/default.php" target="main">Opslagstavlen</a> <a href="admin/support/henvendelser.php" target="main">Henvendelser
  </a></span><a href="admin/support/henvendelser.php">
  <select name="select2" class="ForsideTop" onChange="top.main.location.href = this.options[this.selectedIndex].value">
    <option value="/community/profile.php" selected>Rediger bruger:</option>
    <option value="/community/chat/default.php">Chat</option>
  <option value="/community/ret/Personligt3.php">Personlige indstillinger</option>
  <option value="/community/ret/personligt.php">Profiltekst</option>
    <option value="/community/humor/edit_humor.php">Humør</option>
    <option value="/community/dagbog/default.php">Dagbog</option>
    <option value="/community/link/default_on.php">Ynglings hjemmesider</option>
    <option value="/style/style.php">Farvetemaer</option>
  <option value="/community/top10/default.php">Top 10 venner</option>
    <option value="/community/profil/default.php">Profil-billede</option>
      <option value="/community/galleri/default.php">Galleri</option>
      <option value="/community/gb/bannet/default.php">Bloker bruger</option>
</select>
  </a>
  <select name="dropdown" class="ForsideTop" onChange="top.main.location.href = this.options[this.selectedIndex].value">
    <option value="profile.php" selected>Status:</option>
    <option value="online.php">Online</option>
    <option value="optaget.php">Optaget</option>
    <option value="ikke.php">Ikke til stede</option>
  </select>
  <a href="logoff.php" target="login">Log af</a></center>
  <? } else { ?>
  <iframe src="/community/on_off.php" name="" frameborder="0" height="0" width="0"></iframe><center>
<a href="profile.php" target="main">Profil</a><a href="gb/gb.php?til=<? echo"$user";?>" target="main" > G&aelig;stebog (
  <?
  include("connect.php");
$result = mysql_query("SELECT * FROM gb WHERE til = '$user'");
echo mysql_num_rows($result);
mysql_close();
?>
)</a><a href="tagwall/default.php" target="main" >Opslagstavlen</a>
<select name="select3" class="ForsideTop" onChange="top.main.location.href = this.options[this.selectedIndex].value">
<option value="/community/profile.php" selected>Rediger bruger:</option>
    <option value="/community/chat/default.php">Chat</option>
  <option value="/community/ret/Personligt3.php">Personlige indstillinger</option>
  <option value="/community/ret/personligt.php">Profiltekst</option>
    <option value="/community/humor/edit_humor.php">Humør</option>
    <option value="/community/dagbog/default.php">Dagbog</option>
      <option value="/community/gb/bannet/default.php">Bloker bruger</option>
        <option value="/community/link/default_on.php">Ynglings hjemmesider</option>
    <option value="/style/style.php">Farvetemaer</option>
  <option value="/community/top10/default.php">Top 10 venner</option>
  <option value="/community/profil/default.php">Profil-billede</option>
      <option value="/community/galleri/default.php">Galleri</option>
</select>
<select name="dropdown" class="ForsideTop" onChange="top.main.location.href = this.options[this.selectedIndex].value">
  <option value="profile.php" selected>Status:</option>
  <option value="online.php">Online</option>
  <option value="optaget.php">Optaget</option>
  <option value="ikke.php">Ikke til stede</option>
</select>
  <a href="logoff.php" target="login">Log af</a></center><?
}
?>
</body>
</html>

<? } else { ?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.1 Transitional//EN">
<HTML>
<HEAD>
<TITLE></TITLE>

<link rel="stylesheet" href="/style/style.css" type="text/css">
</HEAD>
<BODY>
<font color="red"><b>Fejl i login!</b></font><a href="/community/loggin.php" target="login"><b>Tilbage ..</b></a>
<?
}
?>
</BODY>
</HTML>
Avatar billede amews_aj Nybegynder
21. maj 2006 - 21:55 #22
Det er pga. denne: header("LOCATION:logoff.php");
Det får man ikke lov til efter du har sendt session_start();

desuden skal du heller ikke sende til logoff.php

Du skal tænke på at det er en anden person der gør at den kode bliver kørt, så den person skal ikke videresendes til logoff.php
Du må lave en kode der gør det den skal inden i selve den if der er lavet, og ikke henvise til en anden side.
Avatar billede michael_stim Ekspert
21. maj 2006 - 22:05 #23
Man kan nu godt have session_start() längst oppe og sende en header.
Men det var da en masse start og slut tags du har. Pröv at fjerne dem og alle linieskiftene. Dem må du derimod ikke ha' samt udskrive noget til skärmen.
Avatar billede jens12 Nybegynder
21. maj 2006 - 22:09 #24
Skal jeg så gøre noget ala dette her :
<?
include("connect.php");
$date = date("d/m-20y - H:i:s");
$query = mysql_query("UPDATE login SET status = 'Online', login='$date' WHERE brugernavn = '".$_SESSION['user']."'");

$activity = mysql_query("SELECT * FROM login WHERE brugernavn = '".$_SESSION['user']."'");
while ( $tjek_activity = mysql_fetch_array($activity) ) {
$actual_time = time();
$time_to_log_off = $actual_time - 60 * 1; // 3 minutter
if ( $tjek_activity['sidstset'] < $time_to_log_off && $tjek_activity['status'] != "offline") {
$q = mysql_query("UPDATE login SET point = point + '1' WHERE brugernavn = '".$_SESSION['user']."' AND id = '".$_SESSION['id']."'");
$q = mysql_query("UPDATE login SET status = 'Offline' WHERE brugernavn = '".$_SESSION['user']."' AND id = '".$_SESSION['id']."'");
session_destroy();
session_unset();
echo"<script type=\"text/javascript\">
top.location.href = \"/nyt/\";
</script>";
}
}
?> ???
Avatar billede jens12 Nybegynder
21. maj 2006 - 22:12 #25
Kigger igen imorgen:D
Avatar billede jens12 Nybegynder
22. oktober 2006 - 11:27 #26
Lukket,fandt ingen løsning.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester