Crew algemeen |
|
Als je een cookie set, zou ik een aparte MySQL tabel er bij maken.
Je set een cookie met het gebruikersID, en een cookie met een aparte md5 hash.
In de tabel zet je de volgende dingen:
Citaat: gebruikersID
de hash
IP adres
Dan kun je vervolgens checken of er een cookie is geset, zo niet, dan is de bezoeker niet ingelogd.
Is er wel een cookie geset, ga je kijken of de gebruikersID, en de hash in de tabel staan.
voorbeeldje:
<?PHP
// kijken of er een cookie geset is
// met een gebruikersID
if(!IsSet($_COOKIE['id']))
{
// nee, de gebruiker is sowieso NIET ingelogd
echo "Je bent niet ingelogd.";
} else
{
// ja, er is kans dat de gebruiker ingelogd is
// query maken voor checks
$sQuery = "SELECT hash, ip FROM <tabel> WHERE gebruikersID=".MySQL_Escape_String($_COOKIE['id']);
// query uitvoeren
if($rResult = MySQL_Query($sQuery))
{
// checken of de waardes uit de cookies
// kloppen met de waardes uit de tabel
if( (MySQL_Result($rResult, 0, "hash") == $_COOKIE['hash']) && (MySQL_Result($rResult, 0, "ip") == $_SERVER['REMOTE_ADDR']) )
{
// ja, de gebruiker is dus ingelogd
// je kunt nu de sessies e.d. weer setten
echo "Je bent ingelogd.";
} else
{
// nee, de gebruiker is niet ingelogd
echo "Je bent niet ingelogd.";
}
} else
{
// de query word niet uitgevoerd
// een MySQL error op het scherm zetten
echo MySQL_Error()."<br />".MySQL_Errno();
}
}
?>
<?PHP // kijken of er een cookie geset is // met een gebruikersID if(!IsSet($_COOKIE['id'])) { // nee, de gebruiker is sowieso NIET ingelogd echo "Je bent niet ingelogd."; } else { // ja, er is kans dat de gebruiker ingelogd is // query maken voor checks $sQuery = "SELECT hash, ip FROM <tabel> WHERE gebruikersID=".MySQL_Escape_String($_COOKIE['id']); // query uitvoeren { // checken of de waardes uit de cookies // kloppen met de waardes uit de tabel if( (MySQL_Result($rResult, 0, "hash") == $_COOKIE['hash']) && (MySQL_Result($rResult, 0, "ip") == $_SERVER['REMOTE_ADDR']) ) { // ja, de gebruiker is dus ingelogd // je kunt nu de sessies e.d. weer setten echo "Je bent ingelogd."; } else { // nee, de gebruiker is niet ingelogd echo "Je bent niet ingelogd."; } } else { // de query word niet uitgevoerd // een MySQL error op het scherm zetten } } ?>
|