webForumDet fria alternativet

Autoinloggning

PHPur PHP

6 svar · 527 visningar · startad av ahassis

Medlem sedan juni 200229 inlägg
Frågan#1

Hejsan!
Jag har nu sökt igenom hela webforum och även phportalen, inte hittat något fel som stämmer med mitt.

Problem:
Jag kör en autoinloggning på min sida. Kör först en inloggning som ser ut så här:

        // Lite cookies
        setcookie ("cookie","true", time()+99999);
        setcookie ("uid",$r['id'], time()+99999);
        setcookie ("pwd",md5($r['password']), time()+99999);

Alltså, detta är bara den väsentliga delen.

Och sedan kör jag på min index.php sida så här:

if (isset($_COOKIE['cookie'])) {
        $query = mysql_query("SELECT * from members where id = '".$_COOKIE['uid']."'");
        $r = mysql_fetch_array($query);
        // Stämmer lösenordet?
        if (md5($r['password']) == $_COOKIE['pwd']) {

        // Skapar lite sessions
        $_SESSION['status'] = "online";
        $_SESSION['uid'] = $r['id'];
        $_SESSION['id'] = $r['id'];
        $_SESSION['username'] = $r['username'];
        $_SESSION['mail'] = $r['mail'];
        $_SESSION['namn'] = $r['namn'];
        if ($r['admin'] == "true") {
                $_SESSION['admin'] = "true";
                session_register("admin");
        }

        }

Alltså, cookien skapas och finns kvar. Men när jag sedan stänger ner webbläsaren och kollar om cookien finns kvar, då finns den fortfarande kvar och innehåller den informationen jag vill att det ska innehålla. MEN när jag går in på sidan igen, alltså efter jag stängt ner webbläsaren, då helt plötsligt: Försvinner kakan!
Borta!
Och därför går det inte att autoinlogga sig.

Någon som har en idè om hur jag ska göra?
Helt borta....
Tack på förhand

Medlem sedan sep. 20011 086 inlägg
#2

du kan inte komma åt cookie-värdena på samma sida som du sätter dem på. och när du sätter nya när personen besöker sidan igen så skrivs de gamla över och de nya kan inte användas förrän på nästa sida...
dvs, du får kolla om cookies är satt innan du sätter nya...

Medlem sedan juni 200229 inlägg
#3

alltså, jag sätter ju cookiena på min sida logon.php och sedan så vill jag komma åt dem på index.php, så jag gör inte så som du säger =/ vad menar du med att kolla cookies är satt innan du sätter nya?

Medlem sedan feb. 2003169 inlägg
#4
if(!empty($_COOKIE['namn']))...
Medlem sedan juni 200229 inlägg
#5

jomen alltså, när ska jag kolla det? eftersom jag aldrig kör logon.php mer än en gång, för om man är inloggad redan så visas aldrig logon.php, så därför kan inte cookiena skriva över varandra =/
men jag förstår inte varför själva cookiefilen på datorn försvinner när man går in på webbsidan igen?

Medlem sedan feb. 2003169 inlägg
#6

ligger filen som du sätter cookien i och index.php i samma mapp??

Medlem sedan juni 200229 inlägg
#7

japp, eller alltså, jag kör med ett includesystem som blir så här:
en länk blir
<a href="./?page=sida">Sida</a>

Och ja, filerna ligger i samma mapp.

134 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)