Avatar billede haolan Nybegynder
06. maj 2007 - 19:39 Der er 2 kommentarer og
1 løsning

Cookies bliver ikke slettet

Hej

Jeg har lavet en side med login og med en funktion for husk login.

Når man afkrydser at man vil huske login bliver cookien sat som følgene:

if ($cherem == "on"){
    $password = md5($password);
    setcookie("remLogin", md5($user . $password), time() + (3600 * 24) * 99999);
}

Når man går på siden en anden gang tjekker den i index.php om cookien eksistere vha. følgene:

if(!isset($_SESSION['username'])) {
    if (isset($_COOKIE["remLogin"])){
        echo "Logger ind.. Vent venligst...";
        echo "<meta http-equiv='Refresh' content='0;url=loginhandler.php'>";
    } else {
  // Loginformular...

Hvis cookien findes bliver man altså sendt til loginhandleren der indeholder:

if ($_COOKIE["remLogin"]){
    $find_user = mysql_query("SELECT username, password FROM s_users") or die(mysql_error());
    while($u = mysql_fetch_array($find_user)){
        if(md5($u['username'] . $u['password']) == $_COOKIE['remLogin']) {
            $_SESSION['username'] = $u['username'];
            $time = $timeconf;
            mysql_query("UPDATE s_sites SET `last_login` = '$time'");
            header("location: pages.php");
            exit;
        }
    }
}

og trykker man på logud knappen skulle den gerne fjerne cookien igen. Logout.php indeholder:

<?php
session_start();
if($_GET{'mode'} == 'logout') {
    $_SESSION = array();
    if (isset($_COOKIE[session_name()])) {
        setcookie(session_name(), '', time()-42000, '/');
        if(isset($_COOKIE['remLogin'])) {
            setcookie("remLogin", '', time()-42000, '/');
        }
        session_destroy();
        echo "<head>";
        echo "Du er logget ud";
        echo "<META HTTP-EQUIV='Refresh' CONTENT='1; URL=index.php'>";
        echo "</head>";
    }
}
?>

Men når man trykker logud, bliver man sendt til index.php, der åbenbart stadig registrerer at remLogin stadig findes og logger derfor ind i systemet igen..

Jeg har det samme system liggende på en anden side, som jeg har kopieret det hele fra.. Og der forekommer der ingen problemer..

Hvad er der så galt her?
Avatar billede mundlort Nybegynder
06. maj 2007 - 20:29 #1
du sætter med:
setcookie("remLogin", md5($user . $password), time() + (3600 * 24) * 99999);

og unsetter med:
setcookie(session_name(), '', time()-42000, '/');

Læg mærke til at der er forskel på 4. parameter... Det er cookie-path'en, altså den sti cookien gælder på. Hvis du sætter 4. parameter når du sætter cookien til '/' burde det virke.
Avatar billede haolan Nybegynder
07. maj 2007 - 07:11 #2
nice.. så fik jeg den til at virke :)

Smid et svar for points
Avatar billede mundlort Nybegynder
10. maj 2007 - 13:21 #3
hej
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester