Avatar billede jaw Nybegynder
25. marts 2005 - 10:42 Der er 18 kommentarer og
2 løsninger

phpsessid i url

Go' morgen Exp's...

Jeg har mig en side der er lavet i PHP. I går begyndte siden pludselig at tilføje &PHPSESSID= på alle URL's. Det resulterede I, at uvedkommende fik en mulighed for at logge ind med brugeroplysninger der ikke var deres egne - selvfølgelig fordi de kunne benytte en andens session-oplysninger.

Dertil kommer så også, at jeg ikke længere kan slette cookies der er sat, ved bare at sætte dem til "".

Efter hvad jeg har kunnet læse mig til er den en setting i php.ini, for jeg kan ikke se at jeg har "kodet" mig til dette problem?

Er det et host-problem eller mit problem? Og hvordan løses det?

Fortsat god påske,
/Jaw
Avatar billede Slettet bruger
25. marts 2005 - 10:53 #1
Havde samme problem, i forbindelse med W3C-validering.

Du kan se løsningen her:
http://www.eksperten.dk/spm/522863
Avatar billede detox Nybegynder
25. marts 2005 - 10:55 #2
Det er normalt denne indstilling i php.ini der bestemmer om id'et skal vises i adresselinjen:

session.use_trans_sid = 0

Du kan muligvis selv sætte den i en htaccess fil med:

php_flag session.use_trans_sid On
Avatar billede detox Nybegynder
25. marts 2005 - 11:01 #3
Skal selvfølgelig være 'Off'!
Avatar billede detox Nybegynder
25. marts 2005 - 11:05 #4
Normalt sletter man en cookie ved at angive en tid der er forekommet, fx:

// Slet cookie
setcookie ("navn", "", time() - 3600);
Avatar billede jaw Nybegynder
25. marts 2005 - 11:09 #5
Prøver lige at pumpe min host for at ændre den setting, for den er sat til 1.

Men kan den setting også føre til at cookies ikke kan blive slettet? I henhold til php-manualen fjerner jeg cookies ved at sætte dem til "", altså:
setcookie("navn", "");

Problemet er bare, at en print_r($_COOKIE) efter at cookies skulle være slettet returnerer mine 2 cookies med data, samt PHPSESSID.
Avatar billede sukos Juniormester
25. marts 2005 - 11:09 #6
Lyder som om du ikke laver tjek nok i dit script?

(for nu at gå detox "i bedene":)

Kan du bruge .htaccess, kan du løse det med
php_flag session.use_trans_sid 0

og

setcookie ("navn", "", time() - 3600, "/");
Avatar billede sukos Juniormester
25. marts 2005 - 11:14 #7
hov,
php_value hvis det er bogstaver
php_flag hvis det er et tal
Avatar billede sukos Juniormester
25. marts 2005 - 11:16 #8
og. b.t.w., normalt vises SID ikke igen, hvis browseren accepterer cookies.
Medmindre session.use_cookies også er sat til 0
Avatar billede jaw Nybegynder
25. marts 2005 - 11:43 #9
Så, nu fik jeg ændret den setting på serveren.

Men jeg kan stadig ikke slette mine cookies - nok fordi de kører i den session-id stadig?
Avatar billede sukos Juniormester
25. marts 2005 - 11:49 #10
Er det dine session cookies eller en "regulær" cookie?
Avatar billede jaw Nybegynder
25. marts 2005 - 11:52 #11
Mine "almindelige" sessions kan jeg godt slette, men dem der er sat med setcookie() kan jeg ikke...

Hvis jeg bruger print_r($_COOKIE) får jeg  [PHPSESSID] => 0521b1d47c87e03ccc99514613686f52 - kan det være grunden?
Avatar billede sukos Juniormester
25. marts 2005 - 11:59 #12
næh, det er jo kun dit session_id()
Der er jo ikke andre cookies?
Avatar billede jaw Nybegynder
25. marts 2005 - 12:02 #13
Det her er min logout.php:

session_start();
session_unset();
session_destroy();
setcookie ("navn", "", time() - 3600, "/");
setcookie("navn", "");

print_r($_COOKIE);

Og der får jeg udskrevet de 2 cookies, der burde være slettet. På min lokale webserver har det hele tiden virket fint, men efter upload gør det ikke helt, men hvorfor?!
Avatar billede sukos Juniormester
25. marts 2005 - 12:10 #14
Hvis du laver output lige efter, vil du jo stadig kunne se cookien.
Det er jo først ved en refresh, den er helt væk

Sætter du session så'n: ?

$_SESSION["noget"] = "et eller andet";

Så skal du bruge
$_SESSION = array();
session_destroy();


Hvad med:

<?php
$_SESSION = array();
session_destroy();
setcookie ("navn", "", time() - 3600, "/");
header("Location:print_cookie.php");
exit;
?>

Og så prøver med
<?php
session_start();
print_r($_COOKIE);
?>
på print_cookie.php
Avatar billede sukos Juniormester
25. marts 2005 - 12:11 #15
Hov, mangler selvf. en session_start() !!!!!!!!!!!!!!
Avatar billede jaw Nybegynder
25. marts 2005 - 12:12 #16
Jeg har skam refreshet siden mange gange :) Og mine sessions forsvinder, men ikke mine cookies.
Avatar billede jaw Nybegynder
25. marts 2005 - 12:20 #17
Og dit forsøg gav intet bedre resultat - de er stadig sat.
Avatar billede jaw Nybegynder
29. marts 2005 - 19:37 #18
Jeg fik ændret var'en og har egentlig ikke haft problemer siden da - går ud fra at I havde ret :) Så smid et svar, så kan I få 20 points hver hvis I vil...?!

Og tak for hjælpen.
Avatar billede detox Nybegynder
29. marts 2005 - 19:55 #19
Velbekommen
Avatar billede jaw Nybegynder
02. april 2005 - 15:17 #20
Nå, de andre 2 vil åbenbart ikke have points. Hvis jeg er for hurtig til at lukke, så må I sige til sukos og kfisker.

Så får du hvad der originalt var afsat Detox, igen tak.
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