Avatar billede davidskp Nybegynder
01. februar 2005 - 14:47 Der er 3 kommentarer og
1 løsning

Session på localhost

Jeg har siddet på min skole og lavet et lille login system med mySQL og sessions. Jeg brugte min gratis side på 1go til at teste og det virkede fint. Men da jeg så kom hjem og henter det ned på min localhost for at arbejde videre får jeg følgende fejl på alle de sider hvor jeg bruger sessions:

Warning: Cannot send session cache limiter - headers already sent (output started at c:\apache\htdocs\dave\index.php:16) in c:\apache\htdocs\dave\upload.php on line 2

Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\dave\index.php:16) in c:\apache\htdocs\dave\upload.php on line 4

Skal jeg ændre opsætningen af min localhost for at det virker eller hvad skal jeg gøre?

/dave
Avatar billede googolplex Novice
01. februar 2005 - 16:36 #1
Indsæt følgende i starten af din side:

<?php ob_start(); ?>

Indsæt følgende i slutningen:

<?php ob_end_flush(); ?>
Avatar billede davidskp Nybegynder
02. februar 2005 - 08:51 #2
OK det prøver jeg når jeg kommer hjem senere. Kan du give en forklaring på hvorfor det det ellers virker online og ikke lokalt, og hvad det script præcis gør? Jeg har det dårligt med bare at paste noget ind som jeg ikke ved hvad gør ;)

På forhånd tak :)

/dave
Avatar billede davidskp Nybegynder
04. februar 2005 - 14:26 #3
Undskyld jeg ikk har afsluttet dette spm før nu men jeg har været væk fra compen :)
googolplex -> Det virker nu - mange tak :)
Avatar billede googolplex Novice
04. februar 2005 - 19:58 #4
Jep, den metode virker altid ;)

Når du første gang sender 'output' til klienten, fx når der står noget html-kode, eller når du udskriver noget med echo (og det behøver bare være et mellemrum i starten af din side, eller en tom linie), så mister du muligheden for at sende header()e, da disse SKAL sendes FØR 'output'. Ved den metode jeg gav dig, smider du alt dit 'output' i en buffer, derefter kan du sende header()e overalt i dit script lige så tosset du vil, og til SIDST tømmer du bufferen og sender alt indholdet til klienten.

Alternativet ville være at organisere dit script så alle header()e sendes først, men det kan godt være svært.

Outbut bufferen kan bruges til rigtig mange smarte ting (fx tømmes og fyldes op med anden kode ved en fejl), du bør virkelig tjekke den ud!

Grunden til at det virker det første sted kan være, at de har aktiveret output bufferen i PHP.INI, så du ikke behøver at gøre det selv.

Takker for point :)
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