Avatar billede mik789 Nybegynder
22. oktober 2004 - 07:55 Der er 26 kommentarer og
2 løsninger

session id og validering

Jeg bruger sessions på mine sider, men det giver fejl i validatoren fordi php indsætter sessionID'er ved alle links, og hvis der i forvejen er en querystreng til linket, indsættes et "&" (før variablen PHPSESSID) som jo er det der giver fejlen.

1) Hvorfor indsættes seesionID'er på alle links?
2) Hvordan undgår man det uden at slette de værdier man selv har sat i sessionen?
Avatar billede jensgram Nybegynder
22. oktober 2004 - 08:09 #1
Hvis du har adgang til PHP's config skal du ændre:

session.use_trans_sid = 1

til

session.use_trans_sid = 0
Avatar billede jensgram Nybegynder
22. oktober 2004 - 08:11 #2
Du bør også kunne bruge:

ini_set('session.use_trans_sid', false);

før session_start();
Avatar billede jensgram Nybegynder
22. oktober 2004 - 08:13 #3
Sidste mulighed er at indsætte:

php_flag session.use_trans_sid off

I din .htaccess (hvis du har mulighed for dette)
Avatar billede mik789 Nybegynder
22. oktober 2004 - 08:24 #4
har prøvet:

ini_set("session.use_trans_sid",0);
session_start();

men det gør ingen forskel; der indsættes PHPSESID'er alligevel
Avatar billede jensgram Nybegynder
22. oktober 2004 - 08:26 #5
Hmm - det burde det da ikke!

Prøv var_dump(ini_set('session.use_trans_sid', false));

bare for at se, om der returneres false eller den gamle værdi.


1) Session id'et indsættes i link, formularer mm. for at gøre brugeren u afhængig af cookies. Der er dog en potentiel sikkerhedsrisiko ved at offentliggøre SID på den måde, så det anbefales at man slår denne feature fra.

se http://martin.f2o.org/php/session
Avatar billede mik789 Nybegynder
22. oktober 2004 - 08:38 #6
med var_dump(ini_set('session.use_trans_sid', false));

får jeg flg.:

bool(false)
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /customers/musicandmeaning.net/musicandmeaning.net/httpd.www/index.php:2) in /customers/musicandmeaning.net/musicandmeaning.net/httpd.www/index.php on line 3
Avatar billede mik789 Nybegynder
22. oktober 2004 - 08:39 #7
og med en .htaccess får jeg "Internal server error" som vist er mit webhotels egen måde at sige at den ikke accepterer dette.
Avatar billede jensgram Nybegynder
22. oktober 2004 - 08:39 #8
Det betyder jo så, at der skete en fejl. Har du prøvet andre ini_set()-statements bare for at se om du har adgang til at bruge denne funktion?
Avatar billede jensgram Nybegynder
22. oktober 2004 - 08:40 #9
Ja, det kunne man godt tænke sig. Så ved jeg ikke lige hvad man gør...
Avatar billede mik789 Nybegynder
22. oktober 2004 - 08:40 #10
nej, men det tyder jo på at det netop er problemet: at jeg ikke har adgang til denne funktion
Avatar billede jensgram Nybegynder
22. oktober 2004 - 08:42 #11
Ja nemlig.
Avatar billede mik789 Nybegynder
22. oktober 2004 - 08:43 #12
hmmn, det er såmænd heller ikke fordi det er så pokkers vigtigt at gå validatoren til at komme ud med sit "This page is valid..." (specielt ikke når dette er den eneste fejl), men hvis der alligevel fandtes en løsning, ville jeg da benytte den
Avatar billede Slettet bruger
22. oktober 2004 - 08:47 #13
Prøv med ini_set("url_rewriter.tags",""); i stedet.
Avatar billede mik789 Nybegynder
22. oktober 2004 - 08:53 #14
sandbox> ok, det virkede. ingen fejl. men forklar mig lige hvad denne kommando egentlig gør.
Avatar billede jensgram Nybegynder
22. oktober 2004 - 08:55 #15
Du overskriver alle de HTML-tags, der ellers ville have været udsat for indsættelse af SID med en tom strenge => ingen HTMl-tags erstattes.
Avatar billede jensgram Nybegynder
22. oktober 2004 - 08:56 #16
Avatar billede mik789 Nybegynder
22. oktober 2004 - 09:01 #17
ok så i stedet for at slå PHPSESSID helt fra (som med session.use_trans_sid = 0) overskriver man PHPSESSID'erne med en to streng. Korrekt?

Og det burde vel være godt nok og burde ikke give uventede problemer?
Avatar billede Slettet bruger
22. oktober 2004 - 09:01 #18
Og den var også nævnt som den eneste milighed på nogen systemer ifølge kommentarerne på http://martin.f2o.org/php/session
Avatar billede mik789 Nybegynder
22. oktober 2004 - 09:02 #19
mig 22/10-2004 09:01:07: "to steng" = tom streng
Avatar billede mik789 Nybegynder
22. oktober 2004 - 09:03 #20
sandbox> nåja... læste den ikke ordentligt igennem
lægger I begge et svar?
Avatar billede Slettet bruger
22. oktober 2004 - 09:05 #21
Jo
Avatar billede jensgram Nybegynder
22. oktober 2004 - 09:10 #22
her
Avatar billede jensgram Nybegynder
22. oktober 2004 - 09:10 #23
hov
Avatar billede mik789 Nybegynder
22. oktober 2004 - 09:12 #24
tak for hurtig hjælp ;-)
Avatar billede jensgram Nybegynder
22. oktober 2004 - 09:13 #25
velbekomme
Avatar billede sukos Juniormester
22. oktober 2004 - 18:34 #26
Lige en note,
Den med .haccess, "dit eget webhotels måde ............", ved ikke lige hvad du mener, men hvis ikke du kan bruge .htaccess, plejer apache nu ikke brokke sig over der ligger en.

Og det viste forslag, er heller ikke korrekt

php_flag session.use_trans_sid 0

eller

php_value session.use_trans_sid off

flag er til tal
value er til text
Avatar billede mik789 Nybegynder
23. oktober 2004 - 17:28 #27
sukos>OK, det kan jeg prøve. Men er dette en bedre metode end sandbox 22/10-2004 08:47:57 synes du?
Avatar billede mik789 Nybegynder
23. oktober 2004 - 17:37 #28
prøvede med en .htaccess fil med denne ene linje:

php_flag session.use_trans_sid 0

men det fungerer stadig ikke på den server hvor jeg ligger...
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