21. maj 2006 - 15:11Der 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!
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....
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)
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.
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']."'");
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.
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.
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>"; } } ?> ???
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.