ccrevcypsys Posted November 15, 2007 Share Posted November 15, 2007 How would i let the sessions page check if someone is already logged on so that someone cant logon twice? here is my sessions page: <?php if (eregi(".inc.php",$HTTP_SERVER_VARS['PHP_SELF']) || eregi(".inc.php",$_SERVER['PHP_SELF'])) { echo "<html>\r\n<head>\r\n<title>Forbidden 403</title>\r\n</head>\r\n<body><h3>Forbidden 403</h3>\r\nThe document you are requesting is forbidden.\r\n</body>\r\n</html>"; exit; } if(($config['offLine']==1 && isset($_SESSION['ccAdmin']) && $config['offLineAllowAdmin']==0) || ($config['offLine']==1 && !isset($_SESSION['ccAdmin']))) { header("Location: offLine.php"); exit; } $sessData["location"] = $db->mySQLSafe(currentPage()); $lkParsed = "PC9ib2R5Pg==PC9odG1sPg=="; if( !isset($_SESSION['ccUser']) && (isset($_COOKIE['ccUser']) || isset($_GET['ccUser'])) ){ if(isset($_COOKIE['ccUser'])){ $_COOKIE['ccUser'] = treatGet($_COOKIE['ccUser']); $sessId = base64_decode($_COOKIE['ccUser']); } elseif(isset($_GET['ccUser'])){ $_GET['ccUser'] = treatGet($_GET['ccUser']); $sessId = $_GET['ccUser']; } // see if session is still in db $query = "SELECT sessId FROM ".$glob['dbprefix']."sessions WHERE sessId=".$db->mySQLSafe($sessId); $results = $db->select($query); if($results == TRUE){ $sessData["timeLast"] = $db->mySQLSafe(time()); if(!isset($_COOKIE['ccRemember'])) { $sessData["customer_id"] = 0; } $update = $db->update($glob['dbprefix']."sessions", $sessData,"sessId=".$db->mySQLSafe($results[0]['sessId'])); $_SESSION['ccUser'] = $results[0]['sessId']; // set cookie to extend expire time meaning if the visitor visits regularly they stay logged in setcookie("ccUser", base64_encode($sessId),time()+$config['sqlSessionExpiry'], $sessionDomain); } } if(!isset($_SESSION['ccUser']) && $results == FALSE) { $sessId = makeSessId(); $_SESSION['ccUser'] = $sessId; // insert sessionId into db $sessData["sessId"] = $db->mySQLSafe($_SESSION['ccUser']); $timeNow = $db->mySQLSafe(time()); $sessData["timeStart"] = $timeNow; $sessData["timeLast"] = $timeNow; $sessData["customer_id"] = 0; $insert = $db->insert($glob['dbprefix']."sessions", $sessData); // set cookie setcookie("ccUser", base64_encode($sessId),time()+$config['sqlSessionExpiry'], $sessionDomain); // delete sessions older than time set in config file $expiredSessTime = time() - $config['sqlSessionExpiry']; $delete = $db->delete($glob['dbprefix']."sessions", "timeLast<".$expiredSessTime); } else { $sessData["timeLast"] = $db->mySQLSafe(time()); $update = $db->update($glob['dbprefix']."sessions", $sessData,"sessId=".$db->mySQLSafe($_SESSION['ccUser'])); } $uniKey = "PGRpdiBjbGFzcz0ndHh0Q29weXJpZ2h0Jz5Qb3dlcmVkIGJ5IDxhIGhyZWY9J2h0dHA6Ly93d3cuY3ViZWNhcnQuY29tJyBjbGFzcz0ndHh0Q29weXJpZ2h0JyB0YXJnZXQ9J19ibGFuayc+Q3ViZUNhcnQ8L2E+JnRyYWRlOzxiciAvPkNvcHlyaWdodCA8YSBocmVmPSdodHRwOi8vd3d3LmRldmVsbGlvbi5jb20nIGNsYXNzPSd0eHRDb3B5cmlnaHQnIHRhcmdldD0nX2JsYW5rJz5EZXZlbGxpb24gTGltaXRlZDwvYT4gMjAwNi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj48L2JvZHk+"; $uniKey2 = "TG9jYXRpb246IGh0dHA6Ly93d3cuY3ViZWNhcnQuY29tL3NpdGUvcHVyY2hhc2Uv"; // get userdata $query = "SELECT * FROM ".$glob['dbprefix']."sessions s LEFT JOIN ".$glob['dbprefix']."customer c ON s.customer_id = c.customer_id WHERE sessId = ".$db->mySQLSafe($_SESSION['ccUser']); $ccUserData = $db->select($query); // We have a session issue :-/ (e.g. session but no matching DB value) if($ccUserData==FALSE) { // reset session and reload current page unset($_SESSION['ccUser'],$_COOKIE['ccUser'],$_COOKIE['ccRemember']); header("Location: ".str_replace("&","&",currentPage())); exit; } ?> and the sessions table looks like this: -----sessions---- sessid (primary) basket timeStart timeLast customer_id location currency Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.