Menü

  Login

  Shoutbox

  Forum » Fragen zu Ilch » Andere Dinge » Activity & Auto Logout


Activity & Auto Logout
Forcey
Grünschnabel

User Pic

Posts: 3
# 05.01.2012 - 22:04:56
    zitieren



Hey Mairu,
schreib grad n Community Script auf Ilch und im Ilch Forum ist einfach keiner mit Vollwissen mehr unterwegs. Schirmer manchmal..
Und dachte vllt gibts hier ja n Denkanstubser.

Undzwar das eine:

Ich möchte folgendes:

 Code
1:
2:
3:
   if ( loggedin() ) {
    db_query("UPDATE prefix_online SET activity = now() WHERE uid = '".$_SESSION['authid']."'");
  }


Hab die function auch fertig und soll bei jeder Aktivität eben ausgeführt werden, eben wenn index.php ausgerufen wird.

Klappt soweit NICHT, da die index.htm ständig aktualisiert? Ich weiß nicht genau, jedenfalls brauch ich die Seite nur irgendwo im Tab aufhaben und meine DB führt activity() aus.
Habs mit require once(....act.php) direkt und loader/config hinzugefügt.

Außerdem möchte ich gern ein Auto Logout Script.
Seh mit dieser ganzen Session / Cookie geschichte noch nicht so ganz durch in der user.php...
Aber denke man kann folgendes ändern:

function user_auto_login_check ()
 Code
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
 function user_auto_login_check () {
  $cn = session_und_cookie_name();
  $dat = explode('=',$_COOKIE[$cn]);
  $id = $pw = 0;
  if (isset($dat[0])) { $id = escape($dat[0], 'integer'); }
  if (isset($dat[1])) { $pw = $dat[1]; }
  debug (' pw ' . $pw );
  debug (' id ' . $id );
  $erg = db_query("SELECT name,id,recht,pass,llogin FROM prefix_user WHERE id = ".$id);
  if (db_num_rows($erg) == 1) {
    debug ('benutzer gefunden');
    $row = db_fetch_assoc($erg);
    if ($row['pass'] == $pw) {
      debug ('passwoerter stimmen');
      debug ($row['name']);
      $_SESSION['authname']  = $row['name'];
      $_SESSION['authid']    = $row['id'];
      $_SESSION['authright'] = $row['recht'];
      $_SESSION['lastlogin'] = $row['llogin'];
      $_SESSION['authsess']  = $cn;
      db_query("UPDATE prefix_online SET uid = ".$_SESSION['authid']." WHERE sid = '".session_id()."'");
      setcookie($cn, $row['id'].'='.$row['pass'], time() + 31104000, "/" );
      return (true);
    }
  }
Mairu
Administrator

User Pic

Posts: 1908
# 22.01.2012 - 19:05:48
    zitieren



Also zum Automatischen Logout, wenn du kein Cookie erstellst, gibt es keinen automatischen Login mehr, was also das gleiche ist, da man sobald die Session abgelaufen ist, sich neu einloggen muss.

Wegen der Activität, es gibt ja einige Module die die Seite refreshen bzw. nur einen kleinen Teil davon, wie z.B. die Shoutbox, wenn dies über Ajax und die index.php läuft, dann wird auch jedesmal dein Activity Eintrag gemacht.