|
Categorieën >
PHP & SQL
Cookie + Sessies in database werken niet (Opgelost)
Kwarde – 29/05/2011 12:07 (Laatst gewijzigd op 29/05/2011 17:29)
|
|
offline
|
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. |
2 antwoorden
|
|
|
offline
|
PHP interesse
|
deze functions zitten toch wel in een klasse hé? 
wat ik ook vreemd vind, is dat je $session_id meegeeft als parameter, maar nooit gebruikt...
|
Kwarde – 29/05/2011 13:43 (Laatst gewijzigd op 29/05/2011 17:29)
|
|
offline
|
Nieuw lid
|
Over die $session_id -> Sorry ik was vergeten functie aan te passen :') -> De $_COOKIE['UserID'] is de $session_id. En ze zitten ook in de class ja ;).
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.
|
Je moet ingelogd zijn om een reactie te kunnen posten.
|
|
|