kostenloser Webspace werbefrei: lima-city


sessionID aus DB löschen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    f**i

    auf meiner ref="/tag/page">page kann man sich als registrierter user einloggen. wird man eingeloggt, wird die sessionID in die Datenbank geschrieben, die tabelle sieht folgenderma?en aus:

    `Id` int(11) NOT NULL auto_increment,
    `session` varchar(50) NOT NULL default '',
    `username` varchar(50) NOT NULL default '',
    `userpassword` varchar(50) NOT NULL default '',
    `vorname` varchar(50) NOT NULL default '',
    `nachname` varchar(50) NOT NULL default '',
    `admin` int(11) NOT NULL default '0',
    `lastAction` timestamp(14) NOT NULL,


    mein problem tritt nun beim ausloggen auf:
    wie realisiert man es, dass wenn man sich nicht ausloggt, die ID aus dem Feld 'session' wieder gel?scht wird?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. s******r

    Hallo

    Ist doch recht einfach. Einfach folgenden MySQL-Code ausf?hren (per mysql_query();):

    UPDATE tabelle SET session = '_';

    Der Strich (_) soll nur ein Zeichen sein, dass dort ein Abstand ist. Also den Strich (_) l?schen.

    bis dann,
    scripter
  4. Autor dieses Themas

    f**i

    dass ist schon klar.
    doch was passiert wenn jemand sich nicht selber ausloggt, sondern einfach den browser schlie?t?
    deshalb soll ja nach einer bestimmten zeit in der der user nicht agiert hat die session gel?scht werde. deshalb auch das feld 'lastAction' welches jedesmal aktualiesiert wird wenn ein user einen link anklickt.
    und nachdem er beispielsweise zehn minuten nichts gemacht hat, soll er ausgeloggt werden.
  5. so m?sste das gehen
    $sperre = time()-600; // 600 sec. = 10 min. oder? :D
    $query = mysql_query("UPDATE FROM tabelle WHERE lastAction<$sperre Set = session = '' ");
    also hier wird die session auf '' gesetzt, wo die letzte Action l?nger als die in der variablen sperre angegeben zur?ckliegt

    probs ma aus
    achja tabelle noch druch deine tabelle ersetzten
  6. Autor dieses Themas

    f**i

    ok ich probier es aus, aber m?sste es wenn dann nicht so aussehen:

    $sperre = time()-1; // 600 sec. = 10 min. oder? :D
    mysql_query("UPDATE user SET session = ' ' WHERE lastAction < $sperre");


    mein Vorschlag war flgender, funktioniert aber irgendwie nicht:

    $res = mysql_query("SELECT Id, lastAction FROM user WHERE Id='$user_id')");


    $dsatz = mysql_fetch_assoc($res);
    $lastAction = $dsatz["lastAction"];

    if ( $lastAction < (time()-600) )
    {
    mysql_query("UPDATE user SET session = ' ' ");
    }

  7. ok ich probier es aus, aber m?sste es wenn dann nicht so aussehen:

    $sperre = time()-1; // 600 sec. = 10 min. oder? :D
    mysql_query("UPDATE user SET session = ' ' WHERE lastAction < $sperre");


    jop das mit dem FROM is falsch
    kommt vom abkopieren aus meiner "scriptsammlung" ^^

    mein Vorschlag war flgender, funktioniert aber irgendwie nicht:

    $res = mysql_query("SELECT Id, lastAction FROM user WHERE Id='$user_id')");


    $dsatz = mysql_fetch_assoc($res);
    $lastAction = $dsatz["lastAction"];

    if ( $lastAction < (time()-600) )
    {
    mysql_query("UPDATE user SET session = ' ' ");
    }

    m?sste eingetlich auch gehen, aber halt nen bischen umfangreicher als mein script... is aber jacke wie hose
  8. k**********e


    mein Vorschlag war flgender, funktioniert aber irgendwie nicht:

    $res = mysql_query("SELECT Id, lastAction FROM user WHERE Id='$user_id')");

    das funktionirt nicht, weil dort eine klammer zuviel ist. solche fehler findet man schneller mit mysql_error()

    $res = mysql_query("SELECT Id, lastAction FROM user WHERE Id='$user_id'") or die(mysql_error());
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!