Login (Vis/Skjul/Beskyttelse)

Tags:    php

<< < 12 > >>
Problem løst



Indlæg senest redigeret d. 17.04.2013 09:47 af Bruger #17534
20 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Vis lige den fejl du får når du bruger session_start();



Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at



Har du gjort som michael skrev?

session_start() skal være det ALLE første du gør på siden.



Ja, og jeg har også tjekket for mellemrum ect.



PHP skriver ikke: "output started at sti/til/fil/hvor/output/starter" uden at der er noget om det.

Så du har ikke været grundig nok. :o)

Gemmer du i UTF-8 tegnsæt, skal du være opmærksom på at visse IDE'er gemmer en UTF-8 BOM med. Det er nogle grimme tegn i starten af filen. Du må ikke gemme med BOM.

Meget firkantet kan du sætte session_start() på linje. 2 i den fil du ser igennem browseren.

Både session_start() og naturligvis header() sender data til browseren i request'ets header (det kan du se mere om i browserens developer tools). Disse header data skal altid være før andet output til browseren. Derfor er det vigtig altid at skrive i blokke, med php-logik blokken først og derefter præsentations(html mm.) blokken til sidst.



Ja, og jeg har også tjekket for mellemrum ect.


og du includer ikke andre sider inden ?



Michael:
Jeg har gennemgået det 8 gange. Jeg tror ikke at jeg kan gennemgå det mere.
Jeg har aldrig hørt om BOM ?

Dan:
Altså jeg har jo en Content, hvor jeg includer. Men der har jeg øverst prøvet at smide session_start(); ind også.
<?php
session_start();
osv.
?>

Det vil den bare hellere ikke godkende :s



session_start() skal være det første overhovedet. Det vil sige det skal komme inden dit html og inden alt muligt andet (det er også allerede blevet sagt). Du får fejlen fordi du viser et eller andet inden du laver session_start.



Indlæg senest redigeret d. 19.03.2013 19:32 af Bruger #17081
Tilbage til start... :)

Lav en ny fil, med absolut kun nedestående i (Ingen mellemrum, eller noget andet):
Fold kodeboks ind/udPHP kode 


Virker det - får du ingen fejl, og vi kan konstatere at du har en fejl i din kode. Får du fejl, kan det være du gemmer med BOM og derved skal kigge på din editor. Er det ikke editoren, skal du kigge på din servers opsætning.

Da BOM er mere kompliceret end jeg gider at gentage, får du her en masse info på det: http://en.wikipedia.org/wiki/Byte_order_mark

Det er dog ikke relevant for problemstillingen, andet at du ikke må gemme med BOM.



Indlæg senest redigeret d. 19.03.2013 19:57 af Bruger #10216
Dan:
Den godkender det hellere ikke øverst /; Har jeg prøvet:
<?php session_start(); ?>

<html>
<body>
osv.

Så jeg ved virkelig ikke hvad der sker, men jeg tror det er noget af det Michael snakker om.

Michael:
- Jeg tjekker lige op på det senere i dag eller i morgen. Har en eksamen i dag, så der er lige lidt nervøsitet på :)



<< < 12 > >>
t