Nieuw lid |
|
Hoi.
Ik ben bezig met een gebruikerssysteem. Hierbij maak ik een sessie systeem in de database, samen met cookies (i.v.m. firesheep). Het probleem is, dat ie niet werkt. De '$userSession->isLogged()' werkt niet. Hier zijn de twee functies die daarbij echt nodig zijn:
function isValidSession($session_id)
{
$sql = "SELECT * FROM `Sessions` WHERE `IP` = '".$_SERVER['REMOTE_ADDR']."' AND `UserID` = '".$_COOKIE['UserID']."'";
$res = mysql_query($sql);
if($res):
return true;
endif;
return false;
}
function isLogged()
{
return $this->isValidSession($_COOKIE['UserID']) && isset($_COOKIE['UserID']) && isset($_COOKIE['LoggedIn']);
}
function isValidSession($session_id) { $sql = "SELECT * FROM `Sessions` WHERE `IP` = '".$_SERVER['REMOTE_ADDR']."' AND `UserID` = '".$_COOKIE['UserID']."'"; if($res): return true; endif; return false; } function isLogged() { return $this->isValidSession($_COOKIE['UserID']) && isset($_COOKIE['UserID']) && isset($_COOKIE['LoggedIn']); }
De 'IP' in de database klopt met mijn IP, en de cookie ook met de UserID. (isValidSession)
De cookies UserID en LoggedIn bestaan ook allebei (isLogged).
Maar als ik nu $userSession->isLogged() gebruik, wordt er 'false' weergeven. Weet iemand waarom?
Als je meer script stukjes nodig hebt, zeg het, en ik zal het plaatsen.
- Kevin
FIXED:
Ik had '$res = mysql_error($res);' ipv '~($sql)' ("Query was empty" had ik).
Ook had ik in de debug modus een dingentje vergeten, ik had nl.:
if(!$userSession->isLogged()):
//Setcookie's
$userSession->user_name();
endif;
if(!$userSession->isLogged()): //Setcookie's $userSession->user_name(); endif;
Dus de sessie was er (ook in de database), maar werd niet weergeven omdat de sessie al bestond.
|