Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Cookie- of sessieprobleem

Anoniem
BasHamar
1 antwoord
  • Ik ben (voor het eerst in mijn leven) bezig met een inlogsysteem (PHP). Wat ik wil is dat men vanaf meerdere plaatsen kan inloggen en uitloggen, zonder dat dit effect heeft op de andere plaats (dus uitloggen vanaf plaats A betekent niet uitloggen op plaats B). Verder wil ik session hijacking voorkomen, dus zet ik een random string in de cookie die overeen moet komen met een random string in de database bij die user.

    De cookies zet ik als volgt:
    [code:1:cfe5288d75]setcookie("login_cookie", $login->id.";".$sid, time()+60*60*24*30, "/", ".example.nl");[/code:1:cfe5288d75]
    waarbij $sid de random string is.
    En die string stop ik als volgt in de database:
    [code:1:cfe5288d75]$quer = mysql_query("SELECT sid FROM $db_prefix$table_user WHERE naam='".$_POST['naam']."'") or die(mysql_error());
    $oldsid = mysql_fetch_assoc($quer);
    $storesid = $oldsid['last_ip'];
    $storesid .= ";$sid";
    mysql_query("UPDATE $db_prefix$table_user SET sid='$storesid' WHERE id='$login->id'") or die(mysql_error());[/code:1:cfe5288d75]

    Bij de sessionhandling doe ik het volgende:
    [code:1:cfe5288d75]list($id, $sid) = split(";", $_COOKIE["login_cookie"]);
    $res = mysql_query("SELECT id, naam, sid FROM $db_prefix$table_user WHERE id='".$id."'") or die(mysql_error());
    if(mysql_num_rows($res) > 0) {
    $row = mysql_fetch_assoc($res);

    if(preg_match("#$sid#", $row['sid'])) {
    // init session
    [/code:1:cfe5288d75]Dit lijkt op zich goed te gaan, ik kan in-en uitloggen vanaf meerdere locaties zonder dat het effect heeft op elkaar. Ik blijf echter niet continu ingelogd, na een uur de site niet bekeken te hebben ben ik weer uitgelogd. De cookie zou een maand geldig moeten zijn, dus ik zou gokken dat het daar niet aan ligt. Ik ben hier echter al een kleine week mee aan het stoeien, en kom er niet uit. Iemand een idee?

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.