[PHP] Geen session_start(), wel cookie met PHPSESSID

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • IntToStr
  • Registratie: December 2003
  • Laatst online: 14:45
Ik ben wat aan het spelen met het Zend Framework. Het is wat jaartjes geleden dat ik heb gewerkt met PHP en wilde weten hoe het staat met frameworks in PHP tov bijv. Java frameworks. Allemaal leuk en aardig, maar ik zie iets raars bij mijn cookies.

Eerst maakte ik gebruik van Zend_Session::start() en Zend_Session::getId(). Later heb ik deze 2 calls verwijderd en zelf een session_id gegenereerd om mee verder te werken.

Nergens in mijn hele project komt de tekst session_start() of Zend_Sessoin::start() voor volgens het zoekmechanisme van Netbeans.

Toch zie ik in Firefox en Chrome een cookie met de naam PHPSESSID, gemaakt op het moment dat ik een pagina bekijk. Verwijderen heeft geen zin.

Zaken als session.auto_start (of iets wat hierop lijkt) in php.ini staan uit.

Als ik de manual lees lijkt het erop dat eerst session_start() moet zijn aangeroepen voordat er cookiebased sessions mogelijk zijn.

Worden die cookies gewoon altijd weggeschreven door PHP of zit er toch ergens iets verstopt in het Zend Framework dat spontaan een sessie start?

(Uiteraard kan ik sessies geheel uitschakelen in php.ini, maar ben nu eigenlijk gewoon benieuwd waar dat cookie vandaan komt :) )

Iemand met suggesties?

Acties:
  • 0 Henk 'm!

  • dtech
  • Registratie: Juni 2005
  • Laatst online: 13-06 23:19
Ik ken het Zend framework niet heel goed, maar naar mijn weten hoort die cookie idd pas gemaakt te worden op het moment dat de sessie gestart wordt met session_start (of zoals je zelf al zegt met session.auto_start).

Het lijkt me niet dat het ZF standaard een sessie start, of in ieder geval een bug. Gebruik je niet een andere feature van het ZF dat gebruik maakt van sessions?

Acties:
  • 0 Henk 'm!

  • IntToStr
  • Registratie: December 2003
  • Laatst online: 14:45
Laat ik inderdaad even melden welke features ik nu in gebruik heb:
Uiteraard Zend_Application en Zend_Bootstrap etc.
Zend_Controller_Action
Zend_Db_Table
Zend_Form
Zend_Registry
Zend_Translator
Zend_Mail

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 14-09 14:15
Ik naam aan dat deze typefout per ongeluk was? Zend_Sessoin vs Zend_Session Maar in ieder geval voor zover ik weet start Zend niet automatisch sessies, PHP evenmin tenzij je session.auto_start gebruikt.

Heb je trouwens al proberen te debuggen? Als je onderdelen blijft strippen en dan gewoon opnieuw controleren zul je zien dat je uiteindelijk wel zult zien waar de sessie wordt gestart.

Acties:
  • 0 Henk 'm!

  • IntToStr
  • Registratie: December 2003
  • Laatst online: 14:45
Er lijkt inderdaad niet veel anders op te zitten. Helaas is er (nog) niemand die dit eerder heeft meegemaakt.

Het was overigens uiteraard een typefout anders zou het niet compileren.

Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Heb je gecheckt of session.auto_start ook uitstaat als je 'm met phpinfo(); opvraagd?

Alternatief: op de eerste regel van je script iets echo-en. Dan krijg je vanzelf een foutmelding 'headers already sent' op de regel waar de sessie wordt gestart.

Acties:
  • 0 Henk 'm!

  • hostname
  • Registratie: April 2009
  • Laatst online: 09:13
Weet je zeker dat het niet een al bestaand cookie is uit een vorig page request (dus krijg je een Set-Cookie header?) Het Zend Framework zelf start i.i.g. geen sessie zonder aanroep naar Zend_Session::start().

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Nergens nog een verwijzing staan in je appliction.ini naar een Session resource? Gebruik je in je form een Zend_Form_Element_Hash tegen CSRF?

Je zit al gauw met een dependency die alsnog een sessie initialiseert ;) Daarnaast eens met hostname: het terugdraaien van resources kan alsnog betekenen dat je van eerdere requests "troep" overhoudt :)

Acties:
  • 0 Henk 'm!

  • IntToStr
  • Registratie: December 2003
  • Laatst online: 14:45
Ah, die CSRF hash is de boosdoener denk ik :)

Het is in ieder geval geen troep van eerdere requests.

Thanks!
Pagina: 1