Avatar billede snorres Nybegynder
02. juli 2004 - 19:28 Der er 21 kommentarer og
1 løsning

Fejl i kode (cookie)

Kan nogen fortælle mig hvorfor den her sender videre til login.php lige meget om cookien er sat og passer eller ej???

(meningen er at den skal sende videre hvis ikke at den krypterede userid er = med checksum )

$salt = "XXXXX";
if ( isset( $_COOKIE['userid'] ) || md5( md5( $_COOKIE['userid'] ) . $salt ) != $_COOKIE['checksum'] )
{
header("location: login.php");
}
Avatar billede erikjacobsen Ekspert
02. juli 2004 - 19:31 #1
har du sagt md5 een gang for meget??
Avatar billede snorres Nybegynder
02. juli 2004 - 21:28 #2
nej det tror jeg ikke :S
har sat den med:

  $salt = "XXXXX";
  $userid = $ID;
  setcookie( "userid", $userid, strtotime("+1 day") );
  setcookie( "checksum", md5( md5( $userid ) . $salt ), strtotime( "+1 day") );
Avatar billede erikjacobsen Ekspert
02. juli 2004 - 21:41 #3
Ok, men så er det vel fordi det skal være
f ( isset( $_COOKIE['userid'] ) && md5( md5( $_COOKIE['userid'] ) . $salt ) != $_COOKIE['checksum'] )

Der er nu ingen grund til at lave md5 to gange. Dette er tilstrækkeligt, hvis du
gør det begge steder:

  md5($_COOKIE['userid'] . $salt)
Avatar billede erikjacobsen Ekspert
02. juli 2004 - 21:51 #4
Nah, jeg vrøvler vist lidt. Det er lovligt logge ind hvis
  if ( isset( $_COOKIE['userid'] ) && md5( md5( $_COOKIE['userid'] ) . $salt ) == $_COOKIE['checksum'] )
ellers er det ulovligt. Negationen, der hvor det er ulovligt, er så ifølge
deMorgans love:
  if ( !isset( $_COOKIE['userid'] ) || md5( md5( $_COOKIE['userid'] ) . $salt ) != $_COOKIE['checksum'] )
Matematik er nu sjovt ;)
Avatar billede snorres Nybegynder
02. juli 2004 - 21:52 #5
ok prøvet lige, og tak :)
Avatar billede snorres Nybegynder
02. juli 2004 - 21:54 #6
nej ik rigtig :D:D:D
heh jo det er, ellers ville jeg finde på et noget andet, men det kan drille :D:D
Så
if ( !isset( $_COOKIE['userid'] ) || md5( md5( $_COOKIE['userid'] ) . $salt ) != $_COOKIE['checksum'] )
er den rigtige?? :D:D
Avatar billede snorres Nybegynder
02. juli 2004 - 21:57 #7
Naaah det virkede ikke, så går den til login.php lige meget hvad ;)
Avatar billede erikjacobsen Ekspert
02. juli 2004 - 22:00 #8
Hvad laver strtotime( "+1 day") forøvrigt? Jeg opdagede den lige ;)
Avatar billede snorres Nybegynder
02. juli 2004 - 22:05 #9
tror den fortæller at den skal opbevares i 1 dag? :S hehe er ikke sikker, fik koden af en anden :)
Avatar billede erikjacobsen Ekspert
02. juli 2004 - 22:06 #10
Jo, jeg kan vist heller ikke læse ordentligt efter et par glas gæret hyldeblomstdrik.
Ja, men det ser jo rigtigt ud. Kan du lave nogle testudskrifter for at se om der
overhovedet står noget fornuftigt i variablerne.
Avatar billede snorres Nybegynder
02. juli 2004 - 22:09 #11
ja, den bliver brugt over det hele :)
der står brugerens id i
$_COOKIE['userid']
og en lang kode i
$_COOKIE['checksum']
hehe
Avatar billede erikjacobsen Ekspert
02. juli 2004 - 22:12 #12
Leg lidt med
  http://test.n0p.com/eksperten/516320/
Cookierne har ikke værdi første gang du ser siden, men reload, og så har de.
Og det ser ud til at være ok.
Avatar billede snorres Nybegynder
02. juli 2004 - 22:14 #13
tak m8, prøver jeg lige :D
Avatar billede snorres Nybegynder
02. juli 2004 - 22:17 #14
kan man bruge strtotime ("+1 day") med flere dage?
og why bruger du session_start?
Avatar billede erikjacobsen Ekspert
02. juli 2004 - 22:19 #15
Det er en god ide at bruge session_start, li'som at bruge sikkerhedsseler. Prøv det.
Avatar billede snorres Nybegynder
03. juli 2004 - 13:16 #16
li'som sikkerhedsseler :O?
Hvad gør det helt prasist? :S
Avatar billede erikjacobsen Ekspert
03. juli 2004 - 13:37 #17
Det får sessions til at virke. Prøv det.
Avatar billede snorres Nybegynder
03. juli 2004 - 17:55 #18
men der bliver jo ikke brugt nogle sessions ? :S
Avatar billede erikjacobsen Ekspert
03. juli 2004 - 18:13 #19
Det har selvfølgelig størst virkning når man bruger sessions.
Skal vi ikke snakke om noget andet ;)  Altså, bare fordi jeg kom til
at kopiere fra et andet script ...
Avatar billede snorres Nybegynder
04. juli 2004 - 12:28 #20
lol ok :D
SKulle bare være sikker :D:D
Ku jo godt være det var vigtigt :D
Tak for hjælpen m8, nu virker det :D
Får jeg et svar :D?
Avatar billede erikjacobsen Ekspert
04. juli 2004 - 12:39 #21
Jah, og bilen kører selv om man ikke har sikkerhedssele på ;)

Jeg samler ikke på point, tak.
Avatar billede snorres Nybegynder
04. juli 2004 - 14:03 #22
oh, ok, så tager jeg dem da bare igen :P
Tusind tak for hjælpen :)
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