[php] sessions in nieuwe pagina's

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 08:18
Ok, ik heb een raar probleem. Het lijkt dat bij sommige gebruikers (tot nu toe 3 van de 20) een sessie niet goed wordt gemaakt/doorgestuurd. Dit verbaasde mij heel erg aangezien sessies volgens mij helemaal (of vrijwel helemaal?) server-side zijn.

Ik ben natuurlijk gaan proberen het probleem te gaan nabootsen maar dat lukte me niet, zelfs niet met dezelfde ie/windows (alle drie de users hadden winxp/ie een van de users had ook opera waar het bij hem opeens wel mee werkte).

Waar het probleem volgens mij zit is dat een sessie in meerdere pagina's gebruikt wordt. Zover ik weet (altijd dacht) wordt de sessie altijd meegestuurd zolang je maar binnen dezelfde domein blijft. De problemen treden echter op bij het gebruik van verschillende frames/pagina's.

Wat ik nu ontdekt heb is:
• als ik via ie6 een link open die binnen dezelfde pagina maar in een ander frame open doet hij het wel
• als ik echter rechtermuis open in a new window doe; dan stuurt hij de sessie niet mee (krijg ik de melding dat ik uitgelogd ben)
• doe ik dit laatste echter in netscape 7.1 dan gaat het wel goed

Het probleem zoals ik het aangeleverd krijg van de mensen is dat ze na het inloggen in het main frame in het menu frame niet hun personalized menu krijgen (ik gebruik javascript om het menu te refreshen deze checkt zelf of er ingelogd is). Dit werkt bij mij (onder win xp/2k en me en ie 5/6 en netscape 7 en opera) goed.[/ME]

Ik ben m net gaan verdiepen in het meesturen van sessies anagezien ik het zelf niet zo op cookies heb, heb ik het geprobeerd via de url. Hier kwam ik enkele rare dingen tegen:
session_id lijkt altijd leeg
$PHPSESSID geeft wel de session id
het commando SID wat gemaakt is voor deze functie echo-ed bij mij helemaal niets.

Ik ben dus maar gebruik gaan maken van $PGPSESSID en de url als volgt versierd: &PHPSESSID=$PHPSESSID of &sid=$PHPSESSID geen van beide werkte echter.

Op de php-site vind ik het niet erg duidelijk uitgelegd hoe een sessie-id mee te sturen en vervolgens op te vragen (want ook daar ontbreekt het bij mij nog aan...) ik heb het idee dat het erg simpel is.. maar kom er niet uit.

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

Verwijderd

lol begrijp ik het goed? je wilt het probleem veroorzaken :?
is dat de logica: "als ik het probleem veroorzaak kan ik het ook oplossen :S want dat weet ik ook hoe ik het moet oplossen :? " ?

[ Voor 10% gewijzigd door Verwijderd op 07-09-2003 07:26 ]


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

pietje63 schreef op 07 september 2003 @ 02:15:
[...]
Ik ben dus maar gebruik gaan maken van $PGPSESSID en de url als volgt versierd: &PHPSESSID=$PHPSESSID of &sid=$PHPSESSID geen van beide werkte echter.
[...]
Dit zou wel de oplossing voor je probleem kunnen zijn; vertel eens wat meer over dat het niet werkt? Komt de output wel in het document maar pikt PH het niet op? Of zie komt het sessieID ook niet in de URL terecht?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 08:18
Verwijderd schreef op 07 September 2003 @ 07:26:
lol begrijp ik het goed? je wilt het probleem veroorzaken :?
is dat de logica: "als ik het probleem veroorzaak kan ik het ook oplossen :S want dat weet ik ook hoe ik het moet oplossen :? " ?
om te debuggen is het makkelijk om het probleem te reconstrueren om te kijken waar het precies fout gaat
Spider.007 schreef op 07 September 2003 @ 09:15:
[...]

Dit zou wel de oplossing voor je probleem kunnen zijn; vertel eens wat meer over dat het niet werkt? Komt de output wel in het document maar pikt PH het niet op? Of zie komt het sessieID ook niet in de URL terecht?
als ik SID kopieer zoals op de php site dan komt er niets in de url te staan. de enige sessie variable die niet leeg is, is $PHPSESSID die een string bevat die veel weg heeft van een sessie id, dus ik ga er van uit dat, dat het geval is.

Ik heb het probleem nu trouwens al opgelost; ik moet de nieuwe sessie starten met session_start($sid) ipv session_start()

Maar toch blijf ik het raar vinden; waarom in de ene browser; of op de ene pc een sessie minder goed wordt meegestuurd naar een andere pagina dan bij een andere browser...

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 08:18
Ok, het starten van de session met session_start($sid) heeft het probleem niet helemaal opgelost. Er komen toch weer nieuwe mensen met problemen. Ik zal even proberen uit te leggen wat ik nu doe.

in login.php geeft in de header van het html bestand:
PHP:
1
2
3
<script language=JavaScript>
parent.frames['header'].location="header.php?sid=<? echo($PHPSESSID) ?>";
</script>


Als locatie van de header komt er dan ook de sessie id achter te staan.

header.php:
PHP:
1
2
3
4
5
<?
session_start($sid);
// als ingelogd dan moet de link bovenin en onderin het scherm worden aangepast zodat ipv login een link naar je persoonlijke pagina komt
if (empty($_SESSION['login'])) {
$editlink = "<a href=\"login.php\" target=smoelenboek>| Log in</a>";


Hier krijgen sommige mensen dus nog steeds de login link.

Hier een quote van iemand met het probleem:
Ik kon tot voor kort wel mijn gegevens aanpassen, maar nadat ik internet
explorer heb geupdate naar i.e.6 werkt het idd niet meer. IK gebruik
trouwens windows ME. en met explorer 5.5 werkte het dus wel.
Hoop dat ik je hier weer iets mee geholpen heb,
Dus om een of andere reden werkt de sessie bij sommige mensen niet goed samen met ie 6. Bij andere browsers heb ik nog geen problemen kunnen vinden.

Iemand een idee wat ik hieraan kan doen? Wat is er anders an ie6 dan aan andere browsers/ oudere versies?

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 17-09 17:10

RM-rf

1 2 3 4 5 7 6 8 9

dit ligt aan de default cookie-policy van msie6.
standaard worden cookies niet zomaar van sites geaccepteerd, als deze site geen P3P-policy heeft ingesteld

je kunt verder zoeken op P3P
http://www.microsoft.com/...ar01/PrivacyToolsIEfs.asp

http://www.oreillynet.com/pub/wlg/1539
Finally, I find the deployment answer in a PHP forum. It turns out that this problem affects my site only because it pulls data from two different sources. A user at php.net writes:

"MSIE 6 has an inaccurate definition of third party cookies. If your domain is hosted on one server and your PHP stuff is on another, the IE6 P3P implementation considers any cookies sent from the second machine "third party". Third party cookies will be blocked automatically in most privacy settings if not accompanied by what MS considers "an appropriate Compact Policy". In order to make this new piece of tweakable garbage happy I'd suggest you'd par exemple send

header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');

before sending your cookie from your second machine. This header enables your cookie to survive any privacy setting."

So in the end I went to privacycouncil.com and filled out the wizard, which generated a CPC similar to the one above, and started spitting it back to the browser from the top of the site's authentication code.

[ Voor 70% gewijzigd door RM-rf op 11-09-2003 13:32 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 08:18
RM-rf dat is inderdaad het probleem, dank je ik kon dat nergens vinden :). Als ik mijn eigen host uit het allow allways rijtje haal en zeg dat hij session cookies niet standaard mag accepteren dan doet hij het niet; zet ik mijn eigen host daar weer terug doet hij het niet.

Het meesturen van de headers lukt nog niet helemaal, maar daar ga ik van het weekend nog wel even naar kijken, ik heb nu iig een 'work around' voor de bezoekers.

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!

Pagina: 1