|
| session_id() Fra : Bjarni \(Privat\) |
Dato : 19-12-01 13:51 |
|
Er det muligt at tvinge et nyt session_id igennem, hver gang en client
henter en php-side?
Jeg har en login side, hvor clienten får tildelt et session_id med:
session_start();
Når clienten logger ud reset'er jeg session med:
session_destroy();
Begge hændelser (logon og logoff) gemmer jeg i en database sammen med
session_id, for hermed at kunne regne ud, hvor lang tid de forskellige
clienter har været logget på.
Mit problem er, hvis clienten - uden at lukke sin browser ned - logger ind
igen i mit system, så får han tildelt den samme session_id.
Hvordan sikre jeg, at han altid får et nyt session_id ved login?
/bjarni
| |
Dennis Hansen (19-12-2001)
| Kommentar Fra : Dennis Hansen |
Dato : 19-12-01 13:55 |
|
"Bjarni (Privat)" <bjarni@mortensen.as> wrote in message
news:3c208d1a$0$62850$edfadb0f@dspool01.news.tele.dk...
> Hvordan sikre jeg, at han altid får et nyt session_id ved login?
Kan du ikke checkke ved dette login om der allerede er en session igang,
hvis der er kalder du destroy på det og starter et nyt ?
| |
Bjarni \(Privat\) (19-12-2001)
| Kommentar Fra : Bjarni \(Privat\) |
Dato : 19-12-01 13:59 |
|
"Dennis Hansen" <dennis__hansen@hotmail.com> skrev i en meddelelse
news:3c208e21$0$35640$edfadb0f@dspool01.news.tele.dk...
> Kan du ikke checkke ved dette login om der allerede er en session igang,
> hvis der er kalder du destroy på det og starter et nyt ?
>
Hvis jeg laver en session_start() efter en session_destroy() får jeg det
samme session_id, hvorfor?
| |
Dennis Hansen (19-12-2001)
| Kommentar Fra : Dennis Hansen |
Dato : 19-12-01 14:05 |
|
"Bjarni (Privat)" <bjarni@mortensen.as> wrote in message
news:3c208f01$0$62900$edfadb0f@dspool01.news.tele.dk...
> Hvis jeg laver en session_start() efter en session_destroy() får jeg
det
> samme session_id, hvorfor?
Jeg vil tro du bare får det første ledige, betyder det noget ?
Du kunne også checkke ved login om der er en session igang, er der, får
du den til at logge denne bruger af,
så bliver din datbase opdateret.
Logoff sender så videre til login hvor en ny session startes...muligvis
med samme id.
Jeg ved ikke om du kan bruge det til noget.
Mvh
Dennis
| |
Bjarni \(Privat\) (19-12-2001)
| Kommentar Fra : Bjarni \(Privat\) |
Dato : 19-12-01 14:34 |
|
"Dennis Hansen" <dennis__hansen@hotmail.com> skrev i en meddelelse
news:3c20908e$0$35611$edfadb0f@dspool01.news.tele.dk...
> Jeg vil tro du bare får det første ledige, betyder det noget ?
Ja; fordi jeg bruger session_id i min database til at genkende den enkelte
login-periode. Jeg betragter to login af samme client, som to
login-perioder.
>
> Du kunne også checkke ved login om der er en session igang, er der, får
> du den til at logge denne bruger af,
> så bliver din datbase opdateret.
> Logoff sender så videre til login hvor en ny session startes...muligvis
> med samme id.
>
> Jeg ved ikke om du kan bruge det til noget.
>
> Mvh
> Dennis
>
Min login - logout procedure virker fint. Mit eneste problem er i min
database, hvor der kan opstå flere login (og logout) med samme session_id.
| |
Tonni Aagesen (19-12-2001)
| Kommentar Fra : Tonni Aagesen |
Dato : 19-12-01 14:34 |
|
"Bjarni (Privat)" <bjarni@mortensen.as> skrev i en meddelelse
news:3c208f01$0$62900$edfadb0f@dspool01.news.tele.dk...
> Hvis jeg laver en session_start() efter en session_destroy() får jeg det
> samme session_id, hvorfor?
Prøv at læse om session i manualen under brugerkommentarene, så vidt jeg
husker, er der flere, der har haft det samme problem. Der vist også et par
løsningsforslag
Jeg tror ikke, som Dennis nævner, at du bare får det først ledige id
tildelt. Et id må vel blive generet i "runtime" og ikke gå efter en liste,
da det vel må give en sikkerhedsrisiko.
--
Mvh
Tonni Aagesen
agent29@mail1.stofanet.dk
| |
Dennis Hansen (19-12-2001)
| Kommentar Fra : Dennis Hansen |
Dato : 19-12-01 15:00 |
|
"Tonni Aagesen" <use.my@signature.com> wrote in message
news:9vq4t3$acn$1@sunsite.dk...
> "Bjarni (Privat)" <bjarni@mortensen.as> skrev i en meddelelse
> news:3c208f01$0$62900$edfadb0f@dspool01.news.tele.dk...
> Jeg tror ikke, som Dennis nævner, at du bare får det først ledige id
> tildelt. Et id må vel blive generet i "runtime" og ikke gå efter en
liste,
> da det vel må give en sikkerhedsrisiko.
Korrekt, men denne rutine kan altså ikke garanetere at producere et
unikt og aldrig før brugt
id hvis der ikke allerede er en session igang på serveren.
Mvh
Dennis
| |
Tonni Aagesen (19-12-2001)
| Kommentar Fra : Tonni Aagesen |
Dato : 19-12-01 15:44 |
|
"Dennis Hansen" <dennis__hansen@hotmail.com> skrev i en meddelelse
news:3c209d4e$0$55552$edfadb0f@dspool01.news.tele.dk...
> Korrekt, men denne rutine kan altså ikke garanetere at producere et
> unikt og aldrig før brugt
> id hvis der ikke allerede er en session igang på serveren.
Nej, men sandligheden er forsvindende lille
--
Mvh
Tonni Aagesen
agent29@mail1.stofanet.dk
| |
Bjarni \(Privat\) (19-12-2001)
| Kommentar Fra : Bjarni \(Privat\) |
Dato : 19-12-01 15:01 |
|
"Tonni Aagesen" <use.my@signature.com> skrev i en meddelelse
news:9vq4t3$acn$1@sunsite.dk...
> Prøv at læse om session i manualen under brugerkommentarene, så vidt jeg
> husker, er der flere, der har haft det samme problem. Der vist også et par
> løsningsforslag
Tak for forslaget !!!
Jeg fandt følgende, som virker:
$new_session_id = md5($REMOTE_ADDR.$REMOTE_PORT.time()) ;
session_id($new_session_id);
session_start();
/bjarni
| |
|
|