Jump to content

checking if logged on sessions


ccrevcypsys

Recommended Posts

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

Link to comment
https://forums.phpfreaks.com/topic/77485-checking-if-logged-on-sessions/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.