Toon posts:

[PHP] Ongewenst meerdere sessions per client

Pagina: 1
Acties:
  • 40 views sinds 30-01-2008

Verwijderd

Topicstarter
Na een tijdje met andere dingen bezig te zijn geweest ben ik weer verder gegaan met mijn website project. Hierbij loop ik tegen het volgende probleem.

Als ik via een 'local' IP adres (http://192.168.0.107/index.php) mijn interne webserver benader dan werkt de sessions goed. Doe ik hetzelfde (zelfde server, zelfde client) maar dan via het externe IP adres (http://86.81.xxx.xxx/index.php) werkt de sessions niet goed. Wat ik zie is dat in het laatste geval meerdere session files worden aangemaakt. In 1 van de files staan de session gegevens maar de andere zijn leeg. Hoe kan ik dit oplossen?

Systeem
- Windows 2000 met IIS 5
- PHP 4.3.3

PHPINFO
SESSION
Session Support enabled
Registered save handlers files user

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check 0 0
session.save_handler files files
session.save_path c:/tmp c:/tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off

  • simon
  • Registratie: Maart 2002
  • Laatst online: 18:47
Heb je virtual hosts wel goed staan?

|>


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:32

Janoz

Moderator Devschuur®

!litemod

Met een 99% zekerheid durf ik te zeggen dat dit een cookie probleem is. Waarschijnlijk kent je webserver zichzelf enkel als het locale ip waardoor het verkeerde 'domein' aan je cookie meegegeven wordt. Dit zou je even kunnen controleren door een sniffer te gebruiken en kijken welke headers er verstuurd worden. Let hierbij dan speciaal op de cookie header en daarin vooral op het domein deel.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Janoz, hoe los ik dat dan op?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:32

Janoz

Moderator Devschuur®

!litemod

Je webserver fatsoenlijk configureren ;)..


Hoe je dat op moet lossen? Ik heb geen idee. Ik heb nog nooit met IIS gewerkt. Daarnaast weet je nog niet zeker of hetgeen ik stelde ook daadwerkelijk je probleem is.

[ Voor 68% gewijzigd door Janoz op 06-04-2007 15:32 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Jij bent een leuke. :) :) :)
Wil je me iets verder helpen?

  • wboevink
  • Registratie: September 2004
  • Laatst online: 05-11 00:06
Janoz schreef op vrijdag 06 april 2007 @ 15:13:
Waarschijnlijk kent je webserver zichzelf enkel als het locale ip waardoor het verkeerde 'domein' aan je cookie meegegeven wordt.
Lijkt mij sterk.

Gebruik je frames of iframes?
Welke browser gebruik je?
Probeer eens met fiddler (www.fiddlertool.com) te debuggen, is een stuk handiger dan een sniffer in dit geval althans.

Verwijderd

Topicstarter
Ik gebruik geen frames of iframes en het probleem is zowel met Firefox als met IE.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Verwijderd schreef op vrijdag 06 april 2007 @ 15:29:
Jij bent een leuke. :) :) :)
Wil je me iets verder helpen?
Hoe kan hij je iets verder helpen als hij net aangeeft er geen ervaring mee te hebben én niet zeker weet óf dat inderdaad het probleem is? :)
Omdat...? Het zou best kunnen dat ergens in zijn configuratie het interne IP-adres wordt gebruikt in plaats van het publieke, en dat zou wel eens voor problemen kunnen zorgen. Domweg even de instellingen nalopen en kijken of dat IP ergens genoemd wordt waar het niet moet staan lijkt me geen tijdverspilling.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Gwaihir
  • Registratie: December 2002
  • Niet online
ieHTTPHeaders werkt ook lekker hiervoor. Simpeler dan een sniffer of de fiddlertool.

Verwijderd

Topicstarter
Als ik de headers bekijk zie ik het volgende

1e request
GET ....
RESPONSE: Set-Cookie: PHPSESSID=c51eecbe692aac6cbd5d18509823a74d; path=/

2e request
GET :PHPSESSID=c51eecbe692aac6cbd5d18509823a74d
RESPONSE: Set-Cookie: PHPSESSID=1f21e1d58030f1a0f0e54186df9d1d83; path=/

3e request
GET: PHPSESSID=1f21e1d58030f1a0f0e54186df9d1d83
RESPONSE: Set-Cookie: PHPSESSID=3a8a96a2c737a8795c76214de67330ae; path=/

In de headers is te zien dat de client keurig het juiste SESSID door geeft. De webserver maakt echter een nieuw SESSID aan. Dit gebeurd niet als ik de webserver via het lokale ip nummer benader)

Wat betreft de vraag/vermoeden dat de webserver alleen onder zijn eigen IP adres bekend is, weet ik niet goed waar ik moet kijken.

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 17:00

pistole

Frutter

-NMe- schreef op vrijdag 06 april 2007 @ 16:10:
[...]

Hoe kan hij je iets verder helpen als hij net aangeeft er geen ervaring mee te hebben én niet zeker weet óf dat inderdaad het probleem is? :)

[...]

Omdat...? Het zou best kunnen dat ergens in zijn configuratie het interne IP-adres wordt gebruikt in plaats van het publieke, en dat zou wel eens voor problemen kunnen zorgen. Domweg even de instellingen nalopen en kijken of dat IP ergens genoemd wordt waar het niet moet staan lijkt me geen tijdverspilling.
IIS maakt geen gebruik hiervan. Wellicht kan de TS eens controleren in de "configuration" pagina (home directory --> configuration --> options) of "enable session state" aanstaat. Vermoedelijk wel, maar toch.

Je kan ook even je Cookies folder bekijken en zien of je steeds een nieuwe cookie krijgt met een sessionid.

edit:

maak je gebruik van host headers? Als je niet weet wat dat is dan hoef je daar verder niet naar te kijken ;)

edit:

ow, je gebruikt PHP onder IIS. Sorrie, daar heb ik geen ervaring mee

[ Voor 10% gewijzigd door pistole op 07-04-2007 11:07 ]

Ik frut, dus ik epibreer


Verwijderd

Topicstarter
Deze post kan afgesloten worden.

Het lukte me niet het probleem op te lossen. Daarom heb ik maar een nieuwe server ingericht met Apache i.p.v. IIS en nu werkt het wel.

Bedankt alle voor de tips. Fijne paasdagen.

  • noenkelMi
  • Registratie: Mei 2007
  • Laatst online: 11-02 10:17
hallo Wim,

totaal off topic,

ik heb je een mailtje gestuurd (ivm HR J728)
tot later

Michel

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

Hmja.. zeg dan gewoon niks....

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.