Hallo,

Ik heb een inlogsysteem en nu wil ik zeg maar dat de gebruiker ingelogd blijft, nu kan de gebruiker het wel aanvinken, maar de gebruiker blijft niet ingelogd als hij/zei de browser afsluit of uitlogd.

snapt iemand waarom dit verkeerd gaat ?

 
$sessdata = $_SESSION['id'];
                
                $sessdata_str = serialize($sessdata);
                $md5hash = md5($sessdata_str);
                $_SESSION['hash'] = $md5hash;
                // HASH //
                if($remember == "ja") {
                setcookie("hash", $md5hash, time() + 365 * 86400);
                }
                mysql_query("INSERT INTO sessies (member_id,hash,ip,date) VALUES ('".$row['member_id']."','".$md5hash."','".$_SERVER['REMOTE_ADDR']."',NOW())");
                
                return "<br /><br /><strong>".$gebruikersnaam."</strong>, Je bent nu succesvol ingelogd.<br>
                Moment geduld, je wordt doorverwezen.
                <meta http-equiv='refresh' content='3;URL=?p=beveiligdepagina' />";
            }else{
                echo "Je account is verbannen van deze website.<br />Je kan daarom niet inloggen.<br /><a href=\"javascript:history.go(-1)\">Ga terug</a>";
            }
                 if(setcookie($_COOKIE['hash']))
{
$sessdata = $_SESSION['id'];
                
                $sessdata_str = serialize($sessdata);
                $md5hash = md5($sessdata_str);
                $_SESSION['hash'] = $md5hash;
mysql_query("INSERT INTO sessies (member_id,hash,ip,date) VALUES ('".$row['member_id']."','".$md5hash."','".$_SERVER['REMOTE_ADDR']."',NOW())");
  $query = mysql_query($sql);
  echo"Cookie systeem is in onderhoud"; }else { echo"Je bent niet ingelogd !";

   } 
Deze functie boven je pagina zetten
voor je ook iets gaat doen.

<?php
session_start();
?>
Éen session eindigt als de browser wordt afgesloten.
SanThe schreef op 26.06.2009 02:05
Éen session eindigt als de browser wordt afgesloten.


Dat is niet waar, De sessie/ cookie heeft een tijd. Als de tijd afloopt , en die loopt alleen af als je inactief bent dan pas is de sessie verlopen.. :)

je moet wel statements hebben als session gestart is en als sessie niet gestart is toon het inlog. anders heeft het inlog systeem geen zin :p



<?php
session_start();

if(isset($_SESSION))
{
// ik heb hier een sessie
echo "De sessie werkt";
}else{
// hier heb ik geen sessie.
echo "FOUT! probeer het opnieuw ";
}
?>


nu kun je ook een usergroep in de sessie stoppen. als je inlogt als henk ben je admin of als je uit de database haalt dat usergroep is admin. ( zelf aanmaken) dan heb je bvb andere schermen dan als je als een gebruiker inlogt.

nu heb je alleen nog een inlog script nodig. zoals je hierboven hebt. met een header die naar een andere pagina gaat die je alleen kan bezoeken als je bent ingelogd om te controleren of het werkt :)

Reageren