Avatar billede RexReptiles Nybegynder
15. maj 2010 - 14:55 Der er 21 kommentarer og
2 løsninger

huske en bruger med cookies

jeg har kigget lidt på php's hjemmeside om cookies - første gang her jeg prøver bruge det - men den husker mig ikke.

nogen der ved hvad jeg gør galt?

ved login  ->

  if(isset($remember)){
            setcookie("user", $row['username'], time()+60*60*24*100, "/");
            setcookie("pass", $row['password'], time()+60*60*24*100, "/");
            $alert = "Du vil fremover blive logget ind automatisk, du kan fravælge dette igen ved at logge ud som normalt";
}

og include i index ->


// check cookie
if(isset($_COOKIE['name']) && isset($_COOKIE['pass'])){
$username=$_COOKIE['name'];
$password=$_COOKIE['pass'];
$cookie=mysql_query("select * from users where username='$username'") or die(mysql_error());
$rows=mysql_fetch_array($cookie);
if(($rows["username"]==$username)&&($rows["password"]==$password)) {
$loginusername = $rows['realname'];
    $_SESSION['user_id'] = $rows['id'];
    $_SESSION['login'] = true;
}
else {
    $_SESSION['login'] = false;
    }
}
Avatar billede w13 Novice
15. maj 2010 - 15:16 #1
Ved første øjekast skal:
  if(isset($remember)){
være:
  if(!isset($remember)){

lige nu siger den "sæt cookie, hvis den allerede er sat" og det skal jo være, hvis den ikke er sat!
Avatar billede RexReptiles Nybegynder
15. maj 2010 - 15:23 #2
hey 2biaz - nej remember er en post fra en form hvor man kan vælge sig dette.

så opretter den cookien - men ved check finder den mig ik.

ved log ud har jeg.

// cookie reset
            setcookie("user", "", time()-3600, "/");
            setcookie("pass", "", time()-3600, "/");
Avatar billede janmanden Nybegynder
15. maj 2010 - 15:24 #3
Uden at vurdere din kode iøvrigt bemærker jeg, at du ikke bruger samme id i dit kald til cookies. Det ene sted kalder du den "user" og det andet sted hedder den "name".
Avatar billede w13 Novice
15. maj 2010 - 15:42 #4
Ah ja, jeg var lidt for hurtig.

Har du testet, om den nogensinde går ind i:
  if(isset($remember)){
?

Eksempelvis ved at echo'e noget inde i if'en?
Avatar billede RexReptiles Nybegynder
15. maj 2010 - 15:47 #5
jeg har ordnet user og name.

setcookie("rexname", $row['username'], time()+60*60*24*100, "/");
            setcookie("rexpass", $row['password'], time()+60*60*24*100, "/");
            $alert = $_COOKIE['rexname']." - ".$_COOKIE['rexpass'];

uskriver: -

jeg får ingen værdier tilbage
Avatar billede janmanden Nybegynder
15. maj 2010 - 15:51 #6
Prøv at fjerne sidste element i din setcookie "/" og kald den kun med 3 parametre.
Avatar billede RexReptiles Nybegynder
15. maj 2010 - 15:59 #7
gir mig stadig ingen værdier tilbage
Avatar billede janmanden Nybegynder
15. maj 2010 - 16:03 #8
Er du sikker på at der overhovedet er noget indhold dine rows? Og understøtter din browser overhovedet cookies?
Avatar billede RexReptiles Nybegynder
15. maj 2010 - 16:09 #9
sidder på IE8 ligenu

mine rows indeholder noget - da selve loginet foregår fint - men cookien bare ikke returnere noget, kan lige prøve med ff og ie7
Avatar billede w13 Novice
15. maj 2010 - 16:12 #10
Hvad hvis du udskriver cookierbe i koden, lige efter de er blevet sat? Indeholder de så det korrekte?
Avatar billede RexReptiles Nybegynder
15. maj 2010 - 16:12 #11
samme deal i ff og ie7
Avatar billede RexReptiles Nybegynder
15. maj 2010 - 16:25 #12
altså jeg får ik noget tilbage på cokkies har lige prøvet at lave en cokie og så skrive den ud bagefter uden held også - kan være jeg skal bevæge mig over i noget gem ip i database og check op på det - selvom det var dig ville prøve undgå.

men nu er det en lukket brugergruppe.
Avatar billede w13 Novice
15. maj 2010 - 16:34 #13
Hmm. Så lyder det altså meget som om $row er tom.. Hmm..
Avatar billede RexReptiles Nybegynder
15. maj 2010 - 16:41 #14
$row er IKKE tom - de indeholder det som blir sendt videre ved login - user id osv så siden kan finde ud hvem personen er og derefter sætter den lidt $vars op som blir brugt til nyheder og album osv. samt den logger time() og så kan man se om brugeren er online via en anden side.

der må være noget jeg glemmer ved de cookies,
Avatar billede RexReptiles Nybegynder
15. maj 2010 - 16:50 #15
løsning:

if(isset($remember)){
            extract($row);
            setcookie("name", $username, time()+60*60*24*100);
            setcookie("pass", $password, time()+60*60*24*100);
            $alert = $username." - ".$password;
            }

lyder fuldstændigt fucked up - men der er løsningen.
Avatar billede w13 Novice
15. maj 2010 - 16:56 #16
Husk at acceptere dit svar, så du får pointene igen og spørgsmålet lukkes. :)
Avatar billede RexReptiles Nybegynder
15. maj 2010 - 17:00 #17
jeg deler gerne - bare glad for det kom til at virke =)
Avatar billede w13 Novice
15. maj 2010 - 17:16 #18
Takker! ;)
Avatar billede janmanden Nybegynder
15. maj 2010 - 17:19 #19
Det var da dejligt at jeg pointerede dit id mismatch mellem user og name for ellers sad du stadig og nørklede med det :p
Avatar billede RexReptiles Nybegynder
15. maj 2010 - 17:23 #20
100% jan - men det var det mindste af det - jeg fortår ik hvorfor jeg skulle extracte først, før den gad.

men det er vel ligesom det er der unlink - som tit gir problemer hvis man ik cheker om filen er der først.
normalt unlinker man ik efter ting som ikke er der vel da?

fuldstændigt tåbeligt - men fuck it bare det virker =)
Avatar billede majbom Novice
15. maj 2010 - 20:02 #21
nu har jeg kun lige skimtet de 20 kommentarer, men umiddelbart synes jeg ikke der var nogle der bemærkede at du gemmer dit password i cookien og så uden at kryptere det, det er måske ikke det smarteste i verden :)

jeg ville kryptere det begge steder, altså i din database og i cookien...

hvis andre får adgang til en computer med autologin til din side, kan de bare gå ind og se passwordet, uden videre!
Avatar billede RexReptiles Nybegynder
16. maj 2010 - 07:17 #22
splazz, no worrys - no worrys
lukket brugergruppe.

hvis jeg gør det meget større - så tilføjer jeg noget md5 eller what not =)
Avatar billede majbom Novice
16. maj 2010 - 10:21 #23
okay, bare du er bevidst om det :)
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