Toon posts:

Linux Webserver sessions probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo ik heb een linux webserver opgezet. Met de volgende configuratie

apache + php en mysql ondersteuning. De site kan benadert worden maar volgens mij is er iets mis met de permissies of met de session map. Ik heb al een andere session map aangegeven in php.ini maar ik kreeg dezelfde fout. En Ik heb ook geprobeerd om de map een andere owner te geven maar dit heeft ook niet geholpen. En het maakt niet uit of je de site lokaal of buitenaf benadert je krijgt de onderstaande foutmelding.
De site is overgezet met database en al van Windows (op de windows machine werkte de site perfect). MAar de php configuratie enzo heb ik later op linux gedaan.


Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/zakelijk/indische.php:5) in /var/www/zakelijk/indische.php on line 106

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/zakelijk/indische.php:5) in /var/www/zakelijk/indische.php on line 106

ik hoop dat iemand mij kan helpen

  • _fm
  • Registratie: September 2003
  • Niet online

_fm

hmm, google vraag, maargoed. check eens of die pagina niets output voor je de sessie start?

Verwijderd

Topicstarter
ehm wat bedoel je precies met output?
hij leest alleen de database

  • _fm
  • Registratie: September 2003
  • Niet online

_fm

de fouten die je krijgt, zeggen dat de 'headers already sent' zijn, er is dus al document data verstuurd, op het moment dat jij je sessie start (dit kan ook een lege regel zijn). Om de sessie te starten wordt er wat aan je header toegevoegd, maar dat kan dus niet als je al aan je document begonnen bent. Probeer de session_start() eens bovenaan je file te zetten?

Verwijderd

Topicstarter
<?
session_start();
?>

dit staat er op regel 1, maar hij heeft gewerkt op windows apache

  • _fm
  • Registratie: September 2003
  • Niet online

_fm

en hij zegt dat er nog iets voor zit, fix dat, en het werkt. mijn session dir is meestal /tmp

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Output van een HTTP sessie bestaat letterlijk uit dit:

code:
1
2
3
 --- HEADERS --
-- WHITE SPACE --
-- BODY --


Cookies zijn onderdeel van de HEADERS - jij probeert nu een header (een cookie) te sturen terwijl je al body content hebt gestuurd, en dat gaat dus mis.

Overigens kan je dit makkelijk vinden door bv [google=headers already sent] geeft je als eerste hit: http://www.alt-php-faq.org/local/15/

Volgens mij kan je het ook oplossen door in je php.ini output buffering aan te zetten - maar dat moet je gewoon even testen ;)

Verwijderd

Topicstarter
oke thanks ik ga het proberen

Verwijderd

Topicstarter
oke het is opgelost met ob_start(); en ob_end_flush(); . Ik heb ob_start(); bovenin de pagina neergezet boven de <head> en helemaal onderin ob_end_flush();

  • _fm
  • Registratie: September 2003
  • Niet online

_fm

Verwijderd schreef op 03 januari 2004 @ 17:48:
<?
session_start();
?>

dit staat er op regel 1, maar hij heeft gewerkt op windows apache
oke het is opgelost met ob_start(); en ob_end_flush(); . Ik heb ob_start(); bovenin de pagina neergezet boven de <head> en helemaal onderin ob_end_flush();
Jamaar, hoe kan session_start() op regel 1 staan, terwijl je daarna ob_start() boven nog iets anders zet? Die session_start() moest helemaaaaal bovenaan je file.

offtopic:
dit soort dingen oplossen met de ob vind ik niet zo elegant
Pagina: 1